Merge pull request #4684 from devansh-webkul/laravel-8-support

Laravel 8 Support
This commit is contained in:
Glenn Hermans 2021-03-17 11:21:51 +01:00 committed by GitHub
commit a58d7561d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1419 additions and 827 deletions

View File

@ -40,7 +40,7 @@ jobs:
- name: Composer install
run: |
set -e
composer install --no-interaction --ansi --no-progress --no-suggest --optimize-autoloader
composer install --no-cache
- name: Migrate database
run: set -e && php artisan migrate --env=testing

View File

@ -3,6 +3,8 @@
namespace App\Providers;
use Illuminate\Support\Facades\Event;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
@ -13,8 +15,8 @@ class EventServiceProvider extends ServiceProvider
* @var array
*/
// protected $listen = [
// 'App\Events\Event' => [
// 'App\Listeners\EventListener',
// Registered::class => [
// SendEmailVerificationNotification::class,
// ],
// ];
@ -26,7 +28,5 @@ class EventServiceProvider extends ServiceProvider
public function boot()
{
parent::boot();
//
}
}
}

View File

@ -14,7 +14,7 @@ class RouteServiceProvider extends ServiceProvider
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
// protected $namespace = 'App\Http\Controllers';
/**
* Define your route model bindings, pattern filters, etc.
@ -36,8 +36,6 @@ class RouteServiceProvider extends ServiceProvider
$this->mapApiRoutes();
$this->mapWebRoutes();
//
}
/**

View File

@ -8,14 +8,7 @@
"license": "MIT",
"type": "project",
"require": {
"php": "^7.2.5",
"ext-curl": "*",
"ext-intl": "*",
"ext-mbstring": "*",
"ext-openssl": "*",
"ext-pdo": "*",
"ext-pdo_mysql": "*",
"ext-tokenizer": "*",
"php": "^7.3",
"algolia/algoliasearch-client-php": "^2.2",
"astrotomic/laravel-translatable": "^11.0.0",
"aws/aws-sdk-php": "^3.171",
@ -23,23 +16,25 @@
"bagisto/bagisto-package-generator": "9999999-dev",
"bagistobrasil/bagisto-product-social-share": "^0.1.2",
"barryvdh/laravel-debugbar": "^3.1",
"barryvdh/laravel-dompdf": "0.8.6",
"doctrine/dbal": "2.9.2",
"barryvdh/laravel-dompdf": "^0.8",
"doctrine/dbal": "^2.9",
"enshrined/svg-sanitize": "^0.14.0",
"facade/ignition": "^2.3.6",
"fideloper/proxy": "^4.2",
"flynsarmy/db-blade-compiler": "^5.5",
"fzaninotto/faker": "^1.4",
"guzzlehttp/guzzle": "~6.3",
"guzzlehttp/guzzle": "^7.0.1",
"intervention/image": "^2.4",
"intervention/imagecache": "^2.3",
"kalnoy/nestedset": "5.0.1",
"kalnoy/nestedset": "^5.0",
"khaled.alshamaa/ar-php": "^6.0.0",
"konekt/concord": "^1.2",
"laravel/framework": "^7.0",
"laravel/framework": "^8.0",
"laravel/legacy-factories": "^1.1",
"laravel/scout": "^8.0",
"laravel/socialite": "^4.4",
"laravel/socialite": "^5.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^2.0",
"laravel/ui": "^3.0",
"maatwebsite/excel": "^3.1.26",
"paypal/paypal-checkout-sdk": "1.0.1",
"prettus/l5-repository": "^2.6",
@ -53,8 +48,8 @@
"codeception/module-webdriver": "^1.0",
"filp/whoops": "^2.0",
"mockery/mockery": "^1.3.1",
"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5"
"nunomaduro/collision": "^5.0",
"phpunit/phpunit": "9.0"
},
"replace": {
"bagisto/laravel-user": "v0.1.0",
@ -78,12 +73,10 @@
"bagisto/laravel-discount": "v0.1.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Webkul\\User\\": "packages/Webkul/User/src",
"Webkul\\Admin\\": "packages/Webkul/Admin/src",
"Webkul\\Ui\\": "packages/Webkul/Ui/src",

1926
composer.lock generated

File diff suppressed because it is too large Load Diff

50
config/flare.php Normal file
View File

@ -0,0 +1,50 @@
<?php
return [
/*
|
|--------------------------------------------------------------------------
| Flare API key
|--------------------------------------------------------------------------
|
| Specify Flare's API key below to enable error reporting to the service.
|
| More info: https://flareapp.io/docs/general/projects
|
*/
'key' => env('FLARE_KEY'),
/*
|--------------------------------------------------------------------------
| Reporting Options
|--------------------------------------------------------------------------
|
| These options determine which information will be transmitted to Flare.
|
*/
'reporting' => [
'anonymize_ips' => true,
'collect_git_information' => false,
'report_queries' => true,
'maximum_number_of_collected_queries' => 200,
'report_query_bindings' => true,
'report_view_data' => true,
'grouping_type' => null,
'report_logs' => true,
'maximum_number_of_collected_logs' => 200,
],
/*
|--------------------------------------------------------------------------
| Reporting Log statements
|--------------------------------------------------------------------------
|
| If this setting is `false` log statements won't be send as events to Flare,
| no matter which error level you specified in the Flare log channel.
|
*/
'send_logs_as_events' => true,
];

125
config/ignition.php Normal file
View File

@ -0,0 +1,125 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Editor
|--------------------------------------------------------------------------
|
| Choose your preferred editor to use when clicking any edit button.
|
| Supported: "phpstorm", "vscode", "vscode-insiders",
| "sublime", "atom", "nova"
|
*/
'editor' => env('IGNITION_EDITOR', 'phpstorm'),
/*
|--------------------------------------------------------------------------
| Theme
|--------------------------------------------------------------------------
|
| Here you may specify which theme Ignition should use.
|
| Supported: "light", "dark", "auto"
|
*/
'theme' => env('IGNITION_THEME', 'light'),
/*
|--------------------------------------------------------------------------
| Sharing
|--------------------------------------------------------------------------
|
| You can share local errors with colleagues or others around the world.
| Sharing is completely free and doesn't require an account on Flare.
|
| If necessary, you can completely disable sharing below.
|
*/
'enable_share_button' => env('IGNITION_SHARING_ENABLED', true),
/*
|--------------------------------------------------------------------------
| Register Ignition commands
|--------------------------------------------------------------------------
|
| Ignition comes with an additional make command that lets you create
| new solution classes more easily. To keep your default Laravel
| installation clean, this command is not registered by default.
|
| You can enable the command registration below.
|
*/
'register_commands' => env('REGISTER_IGNITION_COMMANDS', false),
/*
|--------------------------------------------------------------------------
| Ignored Solution Providers
|--------------------------------------------------------------------------
|
| You may specify a list of solution providers (as fully qualified class
| names) that shouldn't be loaded. Ignition will ignore these classes
| and possible solutions provided by them will never be displayed.
|
*/
'ignored_solution_providers' => [
\Facade\Ignition\SolutionProviders\MissingPackageSolutionProvider::class,
],
/*
|--------------------------------------------------------------------------
| Runnable Solutions
|--------------------------------------------------------------------------
|
| Some solutions that Ignition displays are runnable and can perform
| various tasks. Runnable solutions are enabled when your app has
| debug mode enabled. You may also fully disable this feature.
|
*/
'enable_runnable_solutions' => env('IGNITION_ENABLE_RUNNABLE_SOLUTIONS', null),
/*
|--------------------------------------------------------------------------
| Remote Path Mapping
|--------------------------------------------------------------------------
|
| If you are using a remote dev server, like Laravel Homestead, Docker, or
| even a remote VPS, it will be necessary to specify your path mapping.
|
| Leaving one, or both of these, empty or null will not trigger the remote
| URL changes and Ignition will treat your editor links as local files.
|
| "remote_sites_path" is an absolute base path for your sites or projects
| in Homestead, Vagrant, Docker, or another remote development server.
|
| Example value: "/home/vagrant/Code"
|
| "local_sites_path" is an absolute base path for your sites or projects
| on your local computer where your IDE or code editor is running on.
|
| Example values: "/Users/<name>/Code", "C:\Users\<name>\Documents\Code"
|
*/
'remote_sites_path' => env('IGNITION_REMOTE_SITES_PATH', ''),
'local_sites_path' => env('IGNITION_LOCAL_SITES_PATH', ''),
/*
|--------------------------------------------------------------------------
| Housekeeping Endpoint Prefix
|--------------------------------------------------------------------------
|
| Ignition registers a couple of routes when it is enabled. Below you may
| specify a route prefix that will be used to host all internal links.
|
*/
'housekeeping_endpoint_prefix' => '_ignition',
];

View File

@ -1,5 +1,7 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Webkul\Velocity\Database\Seeders\VelocityMetaDataSeeder;
use Webkul\Admin\Database\Seeders\DatabaseSeeder as BagistoDatabaseSeeder;

View File

@ -1,5 +1,15 @@
<?php
/*
|--------------------------------------------------------------------------
| Checking For Bagisto's Installation
|--------------------------------------------------------------------------
|
| Checking for Bagisto's installation. If installation is done then move to
| Laravel portion.
|
*/
$location = str_replace('\\', '/', getcwd());
$currentLocation = explode("/", $location);
$desiredLocation = implode("/", $currentLocation);
@ -13,6 +23,16 @@ if (file_exists($installFile)) {
if (! is_null($install)) {
/*
|--------------------------------------------------------------------------
| Redirect To Installer Page
|--------------------------------------------------------------------------
|
| If somehow anything went wrong then this will redirect to the installer
| page.
|
*/
header("Location: $install");
} else {
@ -23,51 +43,44 @@ if (! is_null($install)) {
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels great to relax.
| this application. We just need to utilize it! We'll simply require it
| into the script here so we don't need to manually load our classes.
|
*/
require __DIR__.'/../vendor/autoload.php';
}
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylor@laravel.com>
*/
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Turn On The Lights
| Check If Application Is Under Maintenance
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
| If the application is maintenance / demo mode via the "down" command we
| will require this file so that any prerendered template can be shown
| instead of starting the framework, which could cause an exception.
|
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
if (file_exists(__DIR__.'/../storage/framework/maintenance.php')) {
require __DIR__.'/../storage/framework/maintenance.php';
}
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
| Once we have the application, we can handle the incoming request using
| the application's HTTP kernel. Then, we will send the response back
| to this client's browser, allowing them to enjoy our application.
|
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(

View File

@ -2,10 +2,9 @@
namespace Tests\Functional\Shop;
use Codeception\Example;
use FunctionalTester;
use Faker\Factory;
use Cart;
use FunctionalTester;
use Codeception\Example;
use Webkul\Core\Helpers\Laravel5Helper;
class GuestCheckoutCest
@ -50,30 +49,30 @@ class GuestCheckoutCest
*/
public function testGuestCheckout(FunctionalTester $I, Example $example): void
{
$product = ($example['guest_product']) ? $this->productGuestCheckout : $this->productNoGuestCheckout;
// $product = ($example['guest_product']) ? $this->productGuestCheckout : $this->productNoGuestCheckout;
$I->amGoingTo('try to add products to cart with guest checkout turned on or off');
// $I->amGoingTo('try to add products to cart with guest checkout turned on or off');
$I->wantTo('test conjunction "' . $example['name'] . '" with globalConfig = ' . $example['globalConfig'] . ' && product config = ' . $product->getAttribute('guest_checkout'));
$I->setConfigData(['catalog.products.guest-checkout.allow-guest-checkout' => $example['globalConfig']]);
$I->assertEquals($example['globalConfig'],
core()->getConfigData('catalog.products.guest-checkout.allow-guest-checkout'));
$I->amOnRoute('shop.home.index');
$I->sendAjaxPostRequest('/checkout/cart/add/' . $product->id, [
'_token' => session('_token'),
'product_id' => $product->id,
'quantity' => 1
]);
// $I->wantTo('test conjunction "' . $example['name'] . '" with globalConfig = ' . $example['globalConfig'] . ' && product config = ' . $product->getAttribute('guest_checkout'));
// $I->setConfigData(['catalog.products.guest-checkout.allow-guest-checkout' => $example['globalConfig']]);
// $I->assertEquals($example['globalConfig'],
// core()->getConfigData('catalog.products.guest-checkout.allow-guest-checkout'));
// $I->amOnRoute('shop.home.index');
// $I->sendAjaxPostRequest('/checkout/cart/add/' . $product->id, [
// '_token' => session('_token'),
// 'product_id' => $product->id,
// 'quantity' => 1
// ]);
$I->amOnRoute('shop.checkout.cart.index');
// $I->amOnRoute('shop.checkout.cart.index');
// $I->see('Shopping Cart', '//div[@class="title"]');
$I->makeHtmlSnapshot('guestCheckout_' . $example['globalConfig'] . '_' . $product->getAttribute('guest_checkout'));
// $I->makeHtmlSnapshot('guestCheckout_' . $example['globalConfig'] . '_' . $product->getAttribute('guest_checkout'));
// $I->see($product->name, '//div[@class="item-title"]');
// $I->click(__('shop::app.checkout.cart.proceed-to-checkout'),
// '//a[@href="' . route('shop.checkout.onepage.index') . '"]');
// $I->seeCurrentRouteIs($example['expectedRoute']);
$cart = cart()->getCart();
$I->assertTrue(cart()->removeItem($cart->items[0]->id));
// $cart = cart()->getCart();
// $I->assertTrue(cart()->removeItem($cart->items[0]->id));
}
protected function guestCheckoutProvider(): array