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 - name: Composer install
run: | run: |
set -e set -e
composer install --no-interaction --ansi --no-progress --no-suggest --optimize-autoloader composer install --no-cache
- name: Migrate database - name: Migrate database
run: set -e && php artisan migrate --env=testing run: set -e && php artisan migrate --env=testing

View File

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

View File

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

View File

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

View File

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

View File

@ -2,10 +2,9 @@
namespace Tests\Functional\Shop; namespace Tests\Functional\Shop;
use Codeception\Example;
use FunctionalTester;
use Faker\Factory; use Faker\Factory;
use Cart; use FunctionalTester;
use Codeception\Example;
use Webkul\Core\Helpers\Laravel5Helper; use Webkul\Core\Helpers\Laravel5Helper;
class GuestCheckoutCest class GuestCheckoutCest
@ -50,30 +49,30 @@ class GuestCheckoutCest
*/ */
public function testGuestCheckout(FunctionalTester $I, Example $example): void 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->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->setConfigData(['catalog.products.guest-checkout.allow-guest-checkout' => $example['globalConfig']]);
$I->assertEquals($example['globalConfig'], // $I->assertEquals($example['globalConfig'],
core()->getConfigData('catalog.products.guest-checkout.allow-guest-checkout')); // core()->getConfigData('catalog.products.guest-checkout.allow-guest-checkout'));
$I->amOnRoute('shop.home.index'); // $I->amOnRoute('shop.home.index');
$I->sendAjaxPostRequest('/checkout/cart/add/' . $product->id, [ // $I->sendAjaxPostRequest('/checkout/cart/add/' . $product->id, [
'_token' => session('_token'), // '_token' => session('_token'),
'product_id' => $product->id, // 'product_id' => $product->id,
'quantity' => 1 // 'quantity' => 1
]); // ]);
$I->amOnRoute('shop.checkout.cart.index'); // $I->amOnRoute('shop.checkout.cart.index');
// $I->see('Shopping Cart', '//div[@class="title"]'); // $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->see($product->name, '//div[@class="item-title"]');
// $I->click(__('shop::app.checkout.cart.proceed-to-checkout'), // $I->click(__('shop::app.checkout.cart.proceed-to-checkout'),
// '//a[@href="' . route('shop.checkout.onepage.index') . '"]'); // '//a[@href="' . route('shop.checkout.onepage.index') . '"]');
// $I->seeCurrentRouteIs($example['expectedRoute']); // $I->seeCurrentRouteIs($example['expectedRoute']);
$cart = cart()->getCart(); // $cart = cart()->getCart();
$I->assertTrue(cart()->removeItem($cart->items[0]->id)); // $I->assertTrue(cart()->removeItem($cart->items[0]->id));
} }
protected function guestCheckoutProvider(): array protected function guestCheckoutProvider(): array