Fix Laravel 5.5 compatibility issues - view helpers, collections, and auth routes
- Replace {{ url() }} with {{ url('/') }} in all blade templates to fix object-to-string conversion errors
- Update TeamStoreModel::selectTeamStoreGroupByCartKey() to use first() instead of get() for Laravel 5.5 Collections
- Fix TeamStoreController to access object properties directly instead of using array syntax [0]
- Update authentication routes to use Laravel 5.5 method names (showLoginForm, login, logout)
- Update login/register links from /auth/login to /login throughout views (navbar, app, auth pages)
- Verify cart, login, and register pages working with HTTP 200 status
This commit is contained in:
@@ -1,11 +1,28 @@
|
||||
# Laravel 5.0 → 11 Upgrade Progress
|
||||
|
||||
## Current State (Baseline)
|
||||
- **Laravel Version**: 5.0.*
|
||||
- **PHP Version**: 5.6.40 (container), 7.0 (production Dockerfile)
|
||||
- **Laravel Version**: 5.5.* (Phase 2 Complete)
|
||||
- **PHP Version**: 7.0+ required (container ready)
|
||||
- **Database**: MySQL via PDO
|
||||
- **Branch**: feature/laravel-upgrade
|
||||
|
||||
## Completed Upgrades
|
||||
|
||||
### ✅ Phase 1: Laravel 5.0 → 5.1 (COMPLETE)
|
||||
- ✅ Updated composer.json
|
||||
- ✅ Basic route compatibility verified
|
||||
- ✅ Middleware working
|
||||
- ✅ Authentication flow tested
|
||||
|
||||
### ✅ Phase 2: Laravel 5.1 → 5.5 LTS (COMPLETE)
|
||||
- ✅ Updated composer.json (Laravel 5.5.*, Guzzle ^6.3, PHPUnit ~6.0)
|
||||
- ✅ Created `routes/web.php` with all web routes
|
||||
- ✅ Created `routes/api.php` with API routes (moved from /api prefix)
|
||||
- ✅ Expanded `Route::controllers()` to explicit route definitions
|
||||
- ✅ Updated RouteServiceProvider to use mapWebRoutes() and mapApiRoutes()
|
||||
- ✅ Updated Exception Handler with Laravel 5.5 patterns
|
||||
- ⚠️ **Requires PHP 7.0+** - Local test needs Docker container
|
||||
|
||||
## Dependencies Audit
|
||||
|
||||
### Core Dependencies
|
||||
@@ -34,16 +51,16 @@
|
||||
## Upgrade Path
|
||||
|
||||
### Phase 1: Laravel 5.0 → 5.1 (Week 1)
|
||||
- [ ] Update composer.json
|
||||
- [ ] Test route compatibility
|
||||
- [ ] Verify middleware still works
|
||||
- [ ] Test authentication flow
|
||||
- ✅ Update composer.json
|
||||
- ✅ Test route compatibility
|
||||
- ✅ Verify middleware still works
|
||||
- ✅ Test authentication flow
|
||||
|
||||
### Phase 2: Laravel 5.1 → 5.5 LTS (Week 2)
|
||||
- [ ] Move routes to `routes/web.php`
|
||||
- [ ] Update exception handler
|
||||
- [ ] Test all database queries
|
||||
- [ ] Update validation rules
|
||||
- ✅ Move routes to `routes/web.php`
|
||||
- ✅ Update exception handler
|
||||
- ⏭️ Test all database queries (needs Docker)
|
||||
- ⏭️ Update validation rules (needs testing)
|
||||
|
||||
### Phase 3: PHP 7.0 → 7.4 & Laravel 5.5 → 6.x (Week 3)
|
||||
- [ ] Update Dockerfile to PHP 7.4
|
||||
@@ -71,6 +88,35 @@
|
||||
- [ ] Test new application skeleton
|
||||
- [ ] Verify all functionality
|
||||
|
||||
## How to Test the Upgrade
|
||||
|
||||
### Quick Test (Docker Required)
|
||||
```bash
|
||||
# Run the automated test script
|
||||
./test-laravel-5.5.sh
|
||||
```
|
||||
|
||||
### Manual Test
|
||||
```bash
|
||||
# Build and start container
|
||||
docker compose -f docker-compose.local.yml up -d --build
|
||||
|
||||
# Check Laravel version
|
||||
docker compose -f docker-compose.local.yml exec app php artisan --version
|
||||
|
||||
# List all routes (verify new structure)
|
||||
docker compose -f docker-compose.local.yml exec app php artisan route:list
|
||||
|
||||
# Access the application
|
||||
# http://localhost:8080
|
||||
```
|
||||
|
||||
### Verify Key Changes
|
||||
1. **Routes**: Check `routes/web.php` and `routes/api.php` exist
|
||||
2. **API Prefix**: API routes now automatically prefixed with `/api`
|
||||
3. **Authentication**: Login routes now use named routes (`login`, `register`)
|
||||
4. **Middleware**: Web middleware auto-applied to routes/web.php
|
||||
|
||||
## Breaking Changes to Watch
|
||||
|
||||
### Database
|
||||
|
||||
@@ -1,42 +1,64 @@
|
||||
<?php namespace App\Exceptions;
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Auth\AuthenticationException;
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
|
||||
class Handler extends ExceptionHandler {
|
||||
class Handler extends ExceptionHandler
|
||||
{
|
||||
/**
|
||||
* A list of the exception types that are not reported.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $dontReport = [
|
||||
\Illuminate\Auth\AuthenticationException::class,
|
||||
\Illuminate\Auth\Access\AuthorizationException::class,
|
||||
\Symfony\Component\HttpKernel\Exception\HttpException::class,
|
||||
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
|
||||
\Illuminate\Session\TokenMismatchException::class,
|
||||
\Illuminate\Validation\ValidationException::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* A list of the exception types that should not be reported.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $dontReport = [
|
||||
'Symfony\Component\HttpKernel\Exception\HttpException'
|
||||
];
|
||||
/**
|
||||
* Report or log an exception.
|
||||
*
|
||||
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
|
||||
*
|
||||
* @param \Exception $exception
|
||||
* @return void
|
||||
*/
|
||||
public function report(Exception $exception)
|
||||
{
|
||||
parent::report($exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* Report or log an exception.
|
||||
*
|
||||
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
|
||||
*
|
||||
* @param \Exception $e
|
||||
* @return void
|
||||
*/
|
||||
public function report(Exception $e)
|
||||
{
|
||||
return parent::report($e);
|
||||
}
|
||||
|
||||
/**
|
||||
* Render an exception into an HTTP response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Exception $e
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function render($request, Exception $e)
|
||||
{
|
||||
return parent::render($request, $e);
|
||||
}
|
||||
/**
|
||||
* Render an exception into an HTTP response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Exception $exception
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function render($request, Exception $exception)
|
||||
{
|
||||
return parent::render($request, $exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an authentication exception into an unauthenticated response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Auth\AuthenticationException $exception
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
protected function unauthenticated($request, AuthenticationException $exception)
|
||||
{
|
||||
return $request->expectsJson()
|
||||
? response()->json(['message' => 'Unauthenticated.'], 401)
|
||||
: redirect()->guest(route('login'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,40 +1,32 @@
|
||||
<?php namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\Auth\Guard;
|
||||
use Illuminate\Contracts\Auth\Registrar;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
|
||||
class AuthController extends Controller {
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Registration & Login Controller
|
||||
| Login Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles the registration of new users, as well as the
|
||||
| authentication of existing users. By default, this controller uses
|
||||
| a simple trait to add these behaviors. Why don't you explore it?
|
||||
| This controller handles authenticating users for the application.
|
||||
|
|
||||
*/
|
||||
|
||||
use AuthenticatesAndRegistersUsers;
|
||||
use AuthenticatesUsers;
|
||||
|
||||
protected $redirectTo = '/';
|
||||
|
||||
/**
|
||||
* Create a new authentication controller instance.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\Guard $auth
|
||||
* @param \Illuminate\Contracts\Auth\Registrar $registrar
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function __construct(Guard $auth, Registrar $registrar)
|
||||
public function __construct()
|
||||
{
|
||||
$this->auth = $auth;
|
||||
$this->registrar = $registrar;
|
||||
|
||||
$this->middleware('guest', ['except' => 'getLogout']);
|
||||
$this->middleware('guest')->except('logout');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
68
app/Http/Controllers/Auth/RegisterController.php
Normal file
68
app/Http/Controllers/Auth/RegisterController.php
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\User;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles the registration of new users as well as their
|
||||
| validation and creation.
|
||||
|
|
||||
*/
|
||||
|
||||
use RegistersUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after registration.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'name' => 'required|string|max:255',
|
||||
'email' => 'required|string|email|max:255|unique:users',
|
||||
'password' => 'required|string|min:6|confirmed',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
return User::create([
|
||||
'name' => $data['name'],
|
||||
'email' => $data['email'],
|
||||
'password' => bcrypt($data['password']),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,12 @@
|
||||
<?php namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Foundation\Bus\DispatchesCommands;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
|
||||
abstract class Controller extends BaseController {
|
||||
|
||||
use DispatchesCommands, ValidatesRequests;
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class MainController extends Controller {
|
||||
$categoryids = array();
|
||||
|
||||
foreach($data as $row){
|
||||
$categoryids[] = $row->Category;
|
||||
$categoryids[] = (string)$row->Category;
|
||||
}
|
||||
|
||||
$array_sports = $m->selectSportsByURL($url);
|
||||
|
||||
@@ -591,7 +591,7 @@ class TeamStoreController extends Controller
|
||||
//var_dump($items_group);
|
||||
$grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey);
|
||||
if ($grouped_item) {
|
||||
$defId = $grouped_item[0]->StoreId;
|
||||
$defId = $grouped_item->StoreId;
|
||||
} else {
|
||||
$defId = 0;
|
||||
}
|
||||
|
||||
@@ -10,12 +10,31 @@ class Kernel extends HttpKernel {
|
||||
* @var array
|
||||
*/
|
||||
protected $middleware = [
|
||||
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
|
||||
'Illuminate\Cookie\Middleware\EncryptCookies',
|
||||
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
|
||||
'Illuminate\Session\Middleware\StartSession',
|
||||
'Illuminate\View\Middleware\ShareErrorsFromSession',
|
||||
'App\Http\Middleware\VerifyCsrfToken',
|
||||
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||
\App\Http\Middleware\TrimStrings::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* The application's route middleware groups.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $middlewareGroups = [
|
||||
'web' => [
|
||||
\Illuminate\Cookie\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
|
||||
'api' => [
|
||||
'throttle:60,1',
|
||||
'bindings',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -24,14 +43,17 @@ class Kernel extends HttpKernel {
|
||||
* @var array
|
||||
*/
|
||||
protected $routeMiddleware = [
|
||||
'auth' => 'App\Http\Middleware\Authenticate',
|
||||
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
|
||||
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
|
||||
'teamstoresession' => 'App\Http\Middleware\CheckTeamStorePassword',
|
||||
'admin' => '\App\Http\Middleware\IsAdmin',
|
||||
'normaluser' => '\App\Http\Middleware\IsUser',
|
||||
'isAuthorized' => '\App\Http\Middleware\isAuthorized',
|
||||
'cors' => 'App\Http\Middleware\Cors',
|
||||
'auth' => \App\Http\Middleware\Authenticate::class,
|
||||
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
|
||||
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
'can' => \Illuminate\Auth\Middleware\Authorize::class,
|
||||
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
|
||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||
'teamstoresession' => \App\Http\Middleware\CheckTeamStorePassword::class,
|
||||
'admin' => \App\Http\Middleware\IsAdmin::class,
|
||||
'normaluser' => \App\Http\Middleware\IsUser::class,
|
||||
'isAuthorized' => \App\Http\Middleware\isAuthorized::class,
|
||||
'cors' => \App\Http\Middleware\Cors::class,
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
18
app/Http/Middleware/TrimStrings.php
Normal file
18
app/Http/Middleware/TrimStrings.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
||||
|
||||
class TrimStrings extends Middleware
|
||||
{
|
||||
/**
|
||||
* The names of the attributes that should not be trimmed.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $except = [
|
||||
'password',
|
||||
'password_confirmation',
|
||||
];
|
||||
}
|
||||
@@ -27,8 +27,8 @@ class MainModel extends Model {
|
||||
|
||||
function selectSportsId($url) //
|
||||
{
|
||||
$i = DB::table('sports')->where('URL', '=', $url)->get();
|
||||
$id = $i[0]->Id;
|
||||
$i = DB::table('sports')->where('URL', '=', $url)->first();
|
||||
$id = $i->Id;
|
||||
|
||||
$k = DB::table('templates')->where('SportsId', '=', $id)
|
||||
->where('IsActive','=', "TRUE")
|
||||
@@ -146,8 +146,8 @@ class MainModel extends Model {
|
||||
|
||||
function selectTemplatesByCategory($url, $cat) //
|
||||
{
|
||||
$i = DB::table('sports')->where('URL', '=', $url)->get();
|
||||
$id = $i[0]->Id;
|
||||
$i = DB::table('sports')->where('URL', '=', $url)->first();
|
||||
$id = $i->Id;
|
||||
|
||||
$k = DB::table('templates')->where('SportsId', '=', $id)
|
||||
->where('Category','=', $cat)
|
||||
|
||||
@@ -53,7 +53,7 @@ class TeamStoreModel extends Model {
|
||||
$i = DB::table('cart_tmp')
|
||||
->where('CartKey', $cartKey)
|
||||
->groupby('CartKey')
|
||||
->get();
|
||||
->first();
|
||||
return $i;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +1,20 @@
|
||||
<?php namespace App\Providers;
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Bus\Dispatcher;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class BusServiceProvider extends ServiceProvider {
|
||||
|
||||
class BusServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap any application services.
|
||||
*
|
||||
* @param \Illuminate\Bus\Dispatcher $dispatcher
|
||||
* @return void
|
||||
*/
|
||||
public function boot(Dispatcher $dispatcher)
|
||||
public function boot()
|
||||
{
|
||||
$dispatcher->mapUsing(function($command)
|
||||
{
|
||||
return Dispatcher::simpleMapping(
|
||||
$command, 'App\Commands', 'App\Handlers\Commands'
|
||||
);
|
||||
});
|
||||
// Command bus mapping removed in Laravel 5.5+
|
||||
// Commands are now auto-discovered
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -30,5 +26,4 @@ class BusServiceProvider extends ServiceProvider {
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,12 +19,11 @@ class EventServiceProvider extends ServiceProvider {
|
||||
/**
|
||||
* Register any other events for your application.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Events\Dispatcher $events
|
||||
* @return void
|
||||
*/
|
||||
public function boot(DispatcherContract $events)
|
||||
public function boot()
|
||||
{
|
||||
parent::boot($events);
|
||||
parent::boot();
|
||||
|
||||
//
|
||||
}
|
||||
|
||||
@@ -1,44 +1,69 @@
|
||||
<?php namespace App\Providers;
|
||||
<?php
|
||||
|
||||
use Illuminate\Routing\Router;
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
||||
|
||||
class RouteServiceProvider extends ServiceProvider {
|
||||
class RouteServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* This namespace is applied to your controller routes.
|
||||
*
|
||||
* In addition, it is set as the URL generator's root namespace.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $namespace = 'App\Http\Controllers';
|
||||
|
||||
/**
|
||||
* This namespace is applied to the controller routes in your routes file.
|
||||
*
|
||||
* In addition, it is set as the URL generator's root namespace.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $namespace = 'App\Http\Controllers';
|
||||
/**
|
||||
* Define your route model bindings, pattern filters, etc.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
parent::boot();
|
||||
}
|
||||
|
||||
/**
|
||||
* Define your route model bindings, pattern filters, etc.
|
||||
*
|
||||
* @param \Illuminate\Routing\Router $router
|
||||
* @return void
|
||||
*/
|
||||
public function boot(Router $router)
|
||||
{
|
||||
parent::boot($router);
|
||||
/**
|
||||
* Define the routes for the application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function map()
|
||||
{
|
||||
$this->mapApiRoutes();
|
||||
|
||||
//
|
||||
}
|
||||
$this->mapWebRoutes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the routes for the application.
|
||||
*
|
||||
* @param \Illuminate\Routing\Router $router
|
||||
* @return void
|
||||
*/
|
||||
public function map(Router $router)
|
||||
{
|
||||
$router->group(['namespace' => $this->namespace], function($router)
|
||||
{
|
||||
require app_path('Http/routes.php');
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Define the "web" routes for the application.
|
||||
*
|
||||
* These routes all receive session state, CSRF protection, etc.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function mapWebRoutes()
|
||||
{
|
||||
Route::middleware('web')
|
||||
->namespace($this->namespace)
|
||||
->group(base_path('routes/web.php'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the "api" routes for the application.
|
||||
*
|
||||
* These routes are typically stateless.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function mapApiRoutes()
|
||||
{
|
||||
Route::prefix('api')
|
||||
->middleware('api')
|
||||
->namespace($this->namespace)
|
||||
->group(base_path('routes/api.php'));
|
||||
}
|
||||
}
|
||||
|
||||
16
bootstrap/cache/packages.php
vendored
Executable file
16
bootstrap/cache/packages.php
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
<?php return array (
|
||||
'nesbot/carbon' =>
|
||||
array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Carbon\\Laravel\\ServiceProvider',
|
||||
),
|
||||
),
|
||||
'webpatser/laravel-uuid' =>
|
||||
array (
|
||||
'aliases' =>
|
||||
array (
|
||||
'Uuid' => 'Webpatser\\Uuid\\Uuid',
|
||||
),
|
||||
),
|
||||
);
|
||||
187
bootstrap/cache/services.php
vendored
Executable file
187
bootstrap/cache/services.php
vendored
Executable file
@@ -0,0 +1,187 @@
|
||||
<?php return array (
|
||||
'providers' =>
|
||||
array (
|
||||
0 => 'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider',
|
||||
1 => 'Illuminate\\Auth\\AuthServiceProvider',
|
||||
2 => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
3 => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
4 => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
5 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
||||
6 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
||||
7 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
||||
8 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
||||
9 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
||||
10 => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||
11 => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
12 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
||||
13 => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
||||
14 => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
15 => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||
16 => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||
17 => 'Illuminate\\Session\\SessionServiceProvider',
|
||||
18 => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||
19 => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||
20 => 'Illuminate\\View\\ViewServiceProvider',
|
||||
21 => 'Carbon\\Laravel\\ServiceProvider',
|
||||
22 => 'App\\Providers\\AppServiceProvider',
|
||||
23 => 'App\\Providers\\BusServiceProvider',
|
||||
24 => 'App\\Providers\\ConfigServiceProvider',
|
||||
25 => 'App\\Providers\\EventServiceProvider',
|
||||
26 => 'App\\Providers\\RouteServiceProvider',
|
||||
27 => 'Netshell\\Paypal\\PaypalServiceProvider',
|
||||
),
|
||||
'eager' =>
|
||||
array (
|
||||
0 => 'Illuminate\\Auth\\AuthServiceProvider',
|
||||
1 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
||||
2 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
||||
3 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
||||
4 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
||||
5 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
||||
6 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
||||
7 => 'Illuminate\\Session\\SessionServiceProvider',
|
||||
8 => 'Illuminate\\View\\ViewServiceProvider',
|
||||
9 => 'Carbon\\Laravel\\ServiceProvider',
|
||||
10 => 'App\\Providers\\AppServiceProvider',
|
||||
11 => 'App\\Providers\\BusServiceProvider',
|
||||
12 => 'App\\Providers\\ConfigServiceProvider',
|
||||
13 => 'App\\Providers\\EventServiceProvider',
|
||||
14 => 'App\\Providers\\RouteServiceProvider',
|
||||
15 => 'Netshell\\Paypal\\PaypalServiceProvider',
|
||||
),
|
||||
'deferred' =>
|
||||
array (
|
||||
'command.cache.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.cache.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.clear-compiled' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.auth.resets.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.config.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.config.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.down' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.environment' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.key.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate.fresh' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate.install' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate.refresh' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate.reset' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate.rollback' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate.status' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.optimize' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.package.discover' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.preset' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.failed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.flush' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.listen' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.restart' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.retry' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.work' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.route.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.route.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.route.list' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.seed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.storage.link' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.up' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.view.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.app.name' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.auth.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.cache.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.console.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.controller.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.event.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.event.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.exception.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.factory.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.job.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.listener.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.mail.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.middleware.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.migrate.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.model.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.notification.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.notification.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.policy.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.provider.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.failed-table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.queue.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.request.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.resource.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.rule.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.seeder.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.session.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.serve' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.test.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'command.vendor.publish' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'Illuminate\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'Illuminate\\Contracts\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
||||
'cache' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'cache.store' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'memcached.connector' => 'Illuminate\\Cache\\CacheServiceProvider',
|
||||
'migrator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'migration.repository' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'migration.creator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'composer' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
||||
'hash' => 'Illuminate\\Hashing\\HashServiceProvider',
|
||||
'mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
'swift.mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
'swift.transport' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
'Illuminate\\Mail\\Markdown' => 'Illuminate\\Mail\\MailServiceProvider',
|
||||
'Illuminate\\Contracts\\Pipeline\\Hub' => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
||||
'queue' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.worker' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.listener' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.failer' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'queue.connection' => 'Illuminate\\Queue\\QueueServiceProvider',
|
||||
'redis' => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||
'redis.connection' => 'Illuminate\\Redis\\RedisServiceProvider',
|
||||
'auth.password' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||
'auth.password.broker' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
||||
'translator' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||
'translation.loader' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
||||
'validator' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||
'validation.presence' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
||||
),
|
||||
'when' =>
|
||||
array (
|
||||
'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Bus\\BusServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Cache\\CacheServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Hashing\\HashServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Mail\\MailServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Pipeline\\PipelineServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Queue\\QueueServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Redis\\RedisServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Translation\\TranslationServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
'Illuminate\\Validation\\ValidationServiceProvider' =>
|
||||
array (
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -5,18 +5,21 @@
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"laravel/framework": "5.1.*",
|
||||
"php": ">=7.0.0",
|
||||
"laravel/framework": "5.5.*",
|
||||
"webpatser/laravel-uuid": "^2.0",
|
||||
"netshell/paypal": "dev-master",
|
||||
"guzzlehttp/guzzle": "~6.0",
|
||||
"guzzlehttp/guzzle": "^6.3",
|
||||
"google/recaptcha": "~1.1",
|
||||
"spatie/laravel-analytics": "^1.4",
|
||||
"spatie/laravel-analytics": "^2.0",
|
||||
"league/flysystem-sftp": "^1.0",
|
||||
"aws/aws-sdk-php": "~3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"phpspec/phpspec": "~2.1"
|
||||
"filp/whoops": "~2.0",
|
||||
"fzaninotto/faker": "~1.4",
|
||||
"mockery/mockery": "~1.0",
|
||||
"phpunit/phpunit": "~6.0"
|
||||
},
|
||||
|
||||
"autoload": {
|
||||
@@ -50,6 +53,9 @@
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"preferred-install": "dist"
|
||||
"preferred-install": "dist",
|
||||
"allow-plugins": {
|
||||
"kylekatarnls/update-helper": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
4580
composer.lock
generated
4580
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -80,7 +80,7 @@ return [
|
||||
|
||||
'key' => env('APP_KEY', 'SomeRandomString'),
|
||||
|
||||
'cipher' => MCRYPT_RIJNDAEL_128,
|
||||
'cipher' => 'AES-256-CBC',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -118,7 +118,7 @@ return [
|
||||
'Illuminate\Bus\BusServiceProvider',
|
||||
'Illuminate\Cache\CacheServiceProvider',
|
||||
'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
|
||||
'Illuminate\Routing\ControllerServiceProvider',
|
||||
// 'Illuminate\Routing\ControllerServiceProvider', // Removed in Laravel 5.3+
|
||||
'Illuminate\Cookie\CookieServiceProvider',
|
||||
'Illuminate\Database\DatabaseServiceProvider',
|
||||
'Illuminate\Encryption\EncryptionServiceProvider',
|
||||
@@ -153,7 +153,7 @@ return [
|
||||
/*
|
||||
* Google analytics
|
||||
*/
|
||||
'Spatie\LaravelAnalytics\LaravelAnalyticsServiceProvider',
|
||||
// 'Spatie\LaravelAnalytics\LaravelAnalyticsServiceProvider', // Commented out - version 2.x needs reconfiguration
|
||||
|
||||
],
|
||||
|
||||
|
||||
@@ -4,64 +4,59 @@ return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Authentication Driver
|
||||
| Authentication Defaults
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the authentication driver that will be utilized.
|
||||
| This driver manages the retrieval and authentication of the users
|
||||
| attempting to get access to protected areas of your application.
|
||||
|
|
||||
| Supported: "database", "eloquent"
|
||||
|
|
||||
*/
|
||||
|
||||
'driver' => 'eloquent',
|
||||
'defaults' => [
|
||||
'guard' => 'web',
|
||||
'passwords' => 'users',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Model
|
||||
| Authentication Guards
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When using the "Eloquent" authentication driver, we need to know which
|
||||
| Eloquent model should be used to retrieve your users. Of course, it
|
||||
| is often just the "User" model but you may use whatever you like.
|
||||
|
|
||||
*/
|
||||
|
||||
'model' => 'App\User',
|
||||
'guards' => [
|
||||
'web' => [
|
||||
'driver' => 'session',
|
||||
'provider' => 'users',
|
||||
],
|
||||
|
||||
'api' => [
|
||||
'driver' => 'token',
|
||||
'provider' => 'users',
|
||||
'hash' => false,
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Table
|
||||
| User Providers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When using the "Database" authentication driver, we need to know which
|
||||
| table should be used to retrieve your users. We have chosen a basic
|
||||
| default value but you may easily change it to any table you like.
|
||||
|
|
||||
*/
|
||||
|
||||
'table' => 'users',
|
||||
'providers' => [
|
||||
'users' => [
|
||||
'driver' => 'eloquent',
|
||||
'model' => App\User::class,
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Settings
|
||||
| Resetting Passwords
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may set the options for resetting passwords including the view
|
||||
| that is your password reset e-mail. You can also set the name of the
|
||||
| table that maintains all of the reset tokens for your application.
|
||||
|
|
||||
| The expire time is the number of minutes that the reset token should be
|
||||
| considered valid. This security feature keeps tokens short-lived so
|
||||
| they have less time to be guessed. You may change this as needed.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => [
|
||||
'email' => 'emails.password',
|
||||
'table' => 'password_resets',
|
||||
// 'expire' => 60,
|
||||
'passwords' => [
|
||||
'users' => [
|
||||
'provider' => 'users',
|
||||
'table' => 'password_resets',
|
||||
'expire' => 60,
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddUserIdToSessionsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('sessions', function (Blueprint $table) {
|
||||
$table->unsignedInteger('user_id')->nullable()->after('id');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('sessions', function (Blueprint $table) {
|
||||
$table->dropColumn('user_id');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class UpdateSessionsTableForLaravel55 extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('sessions', function (Blueprint $table) {
|
||||
$table->string('ip_address', 45)->nullable()->after('user_id');
|
||||
$table->text('user_agent')->nullable()->after('ip_address');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('sessions', function (Blueprint $table) {
|
||||
$table->dropColumn(['ip_address', 'user_agent']);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -27,10 +27,12 @@ services:
|
||||
environment:
|
||||
- APP_ENV=local
|
||||
- APP_DEBUG=true
|
||||
- APP_KEY=base64:omrrKgpmHyPi61hoXrxtTwC/2tFkIsXUlb8UoKk3enk=
|
||||
- APP_CIPHER=AES-256-CBC
|
||||
- APP_URL=http://localhost:8082
|
||||
- DB_CONNECTION=mysql
|
||||
- DB_HOST=db
|
||||
- DB_PORT=3306
|
||||
- DB_PORT=3307
|
||||
- DB_DATABASE=crewsportswear
|
||||
- DB_USERNAME=crewsportswear
|
||||
- DB_PASSWORD=secret
|
||||
|
||||
@@ -57,8 +57,8 @@
|
||||
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
@if (Auth::guest())
|
||||
<li><a href="{{ url('/auth/login') }}">Login</a></li>
|
||||
<li><a href="{{ url('/auth/register') }}">Register</a></li>
|
||||
<li><a href="{{ url('/login') }}">Login</a></li>
|
||||
<li><a href="{{ url('/register') }}">Register</a></li>
|
||||
@else
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->username }} <span class="caret"></span></a>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<div class="col-xs-12">
|
||||
<hr />
|
||||
<p class="text-center">Don't have an account? Register Now!</p>
|
||||
<a href="{{ url('/auth/register') }}" type="submit" id="btn-login" class="btn btn-primary btn-block">Register</a>
|
||||
<a href="{{ url('/register') }}" type="submit" id="btn-login" class="btn btn-primary btn-block">Register</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
<div class="col-xs-12">
|
||||
<hr />
|
||||
<p class="text-center">Have already an account?</p>
|
||||
<a href="{{ url('/auth/login') }}" type="submit" id="btn-login" class="btn btn-success btn-block">Login here</a>
|
||||
<a href="{{ url('/login') }}" type="submit" id="btn-login" class="btn btn-success btn-block">Login here</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -50,10 +50,10 @@
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<a href="{{ url('/auth/login') }}" title="Login">Sign in</a>
|
||||
<a href="{{ url('/login') }}" title="Login">Sign in</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ url('/auth/register') }}" title="Register">Register</a>
|
||||
<a href="{{ url('/register') }}" title="Register">Register</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
|
||||
@@ -8,8 +8,14 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12" >
|
||||
<ul class="breadcrumb">
|
||||
<li class=""><a href="{{url()}}">Home</a></li>
|
||||
<li class="active"> {{ $array_sports[0]->SportsName }} </li>
|
||||
<li class=""><a href="{{ url('/') }}">Home</a></li>
|
||||
<li class="active">
|
||||
@if($array_sports && $array_sports->count() > 0)
|
||||
{!! $array_sports->first()->SportsName !!}
|
||||
@else
|
||||
Category
|
||||
@endif
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -18,12 +24,12 @@
|
||||
@foreach ($row as $r)
|
||||
<div class="col-md-3 col-sm-6 col-xs-12 list-sport">
|
||||
<div class="thumb-border">
|
||||
<a href="{{ url() }}/{{ Request::path() }}/{{ $r->Id }}">
|
||||
<img src="{{ minio_url('uploads/images/sports-category/' . $r->Thumbnail) }}" alt="{{ $r->Category }}" class="image" />
|
||||
<a href="{{ url('/') }}/{{ Request::path() }}/{{ $r->Id ?? '' }}">
|
||||
<img src="{{ minio_url('uploads/images/sports-category/' . ($r->Thumbnail ?? 'default.png')) }}" alt="{{ $r->Category ?? 'Category' }}" class="image" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<h3 class="sports-title">{{ $r->Category }}</h3>
|
||||
<h3 class="sports-title">{{ $r->Category ?? 'Unknown' }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12" >
|
||||
<ul class="breadcrumb">
|
||||
<li class=""><a href="{{url()}}">Home</a></li>
|
||||
<li class=""><a href="{{url('/')}}">Home</a></li>
|
||||
<li class=""><a href="{{url('sports')}}/{{ $cat }}" >{{ $cat }}</a></li>
|
||||
<li class="active"> {{ $array_category[0]->Category }}</li>
|
||||
</ul>
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
<label>Item URL</label>
|
||||
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
||||
<!-- <div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon3">{{ url() . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||
<span class="input-group-addon" id="basic-addon3">{{ url('/') . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
||||
</div>
|
||||
<span id="err-itemUrl"></span> -->
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<label>Item URL</label>
|
||||
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
||||
<!-- <div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon3">{{ url() . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||
<span class="input-group-addon" id="basic-addon3">{{ url('/') . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
||||
</div>
|
||||
<span id="err-itemUrl"></span> -->
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<label>Item URL</label>
|
||||
<input type="text" class="form-control" id="product_url" name="itemUrl" placeholder="Item URL">
|
||||
<!-- <div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon3">{{ url() . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||
<span class="input-group-addon" id="basic-addon3">{{ url('/') . "/teamstore/" . $store_array[0]->StoreUrl . '/'}}</span>
|
||||
<input type="text" class="form-control" id="product_url" name="itemUrl" aria-describedby="basic-addon3" data-error="#err-itemUrl" >
|
||||
</div>
|
||||
<span id="err-itemUrl"></span> -->
|
||||
|
||||
22
routes/api.php
Normal file
22
routes/api.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| API Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you can register API routes for your application. These
|
||||
| routes are loaded by the RouteServiceProvider within a group which
|
||||
| is assigned the "api" middleware group. Enjoy building your API!
|
||||
|
|
||||
*/
|
||||
|
||||
Route::group(['middleware' => ['isAuthorized', 'cors']], function () {
|
||||
Route::post('login', 'ApiController@login');
|
||||
Route::post('insert', 'ApiController@insert');
|
||||
Route::get('tracking', 'ApiController@getTrackingStatus');
|
||||
Route::get('order-status', 'ApiController@getOrderStatus');
|
||||
Route::get('steps', 'ApiController@getSteps');
|
||||
});
|
||||
190
routes/web.php
Normal file
190
routes/web.php
Normal file
@@ -0,0 +1,190 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Web Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you can register web routes for your application. These
|
||||
| routes are loaded by the RouteServiceProvider within a group which
|
||||
| contains the "web" middleware group. Now create something great!
|
||||
|
|
||||
*/
|
||||
|
||||
// Authentication Routes (expanded from Route::controllers)
|
||||
Route::get('login', 'Auth\AuthController@showLoginForm')->name('login');
|
||||
Route::post('login', 'Auth\AuthController@login');
|
||||
Route::post('logout', 'Auth\AuthController@logout')->name('logout');
|
||||
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
|
||||
Route::post('register', 'Auth\RegisterController@register');
|
||||
|
||||
// Password Reset Routes
|
||||
Route::get('password/reset', 'Auth\PasswordController@getEmail');
|
||||
Route::post('password/email', 'Auth\PasswordController@postEmail');
|
||||
Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
|
||||
Route::post('password/reset', 'Auth\PasswordController@postReset');
|
||||
|
||||
// Main Routes
|
||||
Route::get('/', 'MainController@index');
|
||||
Route::get('/sportslist', 'MainController@sports');
|
||||
Route::get('/sports/{url}', 'MainController@templatesCat');
|
||||
Route::get('/sports/{url}/{id}', 'MainController@templatesByCategory');
|
||||
Route::get('/templatelist', 'MainController@fetchTemplates');
|
||||
Route::get('/cartcount', 'MainController@countCart');
|
||||
Route::get('/removeitem/{id}', 'MainController@removeCartItem');
|
||||
|
||||
// Custom Authentication
|
||||
Route::post('/custom/auth', 'CustomAuthController@authenticate');
|
||||
Route::post('/custom/register', 'CustomAuthController@postRegister');
|
||||
|
||||
// Cart and Checkout
|
||||
Route::get('cart', 'teamstore\TeamStoreController@cart')->name('cart');
|
||||
Route::get('/checkout', 'teamstore\TeamStoreController@checkout');
|
||||
Route::get('/mail', 'teamstore\TeamStoreController@mail');
|
||||
|
||||
// Designer Routes
|
||||
Route::get('/designer/{templateid}', 'designer\DesignerController@index');
|
||||
Route::get('/designer/preview/{designCode}', 'designer\DesignerController@getDesign');
|
||||
Route::post('/designer/a/buy-form', 'designer\DesignerController@buyForm');
|
||||
|
||||
// Designer Edit Routes
|
||||
Route::get('/designer/edit/{designCode}', 'designer\DesignerController@editDesign');
|
||||
|
||||
// Designer AJAX Routes
|
||||
Route::post('/designer/a/save-roster', 'designer\DesignerController@saveRoster');
|
||||
Route::post('/designer/a/gradient-append', 'designer\DesignerController@gradientAppend');
|
||||
Route::post('/designer/a/set-pattern', 'designer\DesignerController@setPattern');
|
||||
Route::post('/designer/a/set-trim-pattern', 'designer\DesignerController@setTrimPattern');
|
||||
Route::post('/designer/a/get-template-default-colors', 'designer\DesignerController@getTemplateDefaultColors');
|
||||
Route::post('/designer/a/get-font-display', 'designer\DesignerController@getFontDisplay');
|
||||
Route::post('/designer/a/get-cliparts', 'designer\DesignerController@getCliparts');
|
||||
Route::post('/designer/a/clipart-properties', 'designer\DesignerController@clipartProperties');
|
||||
Route::post('/designer/a/save-design', 'designer\DesignerController@saveDesign');
|
||||
Route::post('/designer/edit/a/edit-gradient-append', 'designer\DesignerController@editGradientAppend');
|
||||
Route::post('/designer/edit/a/edit-pattern-properties', 'designer\DesignerController@editPatternProperties');
|
||||
Route::post('/designer/edit/a/edit-set-pattern', 'designer\DesignerController@editSetPattern');
|
||||
Route::get('/designer/a/tab-clipart-content', 'designer\DesignerController@tabClipartContent');
|
||||
Route::post('/designer/a/save-design-details', 'designer\DesignerController@saveDesignDetails');
|
||||
|
||||
// Team Store Routes
|
||||
Route::get('/teamstore', 'teamstore\TeamStoreController@storelist');
|
||||
Route::get('/teamstore/{storename}', 'teamstore\TeamStoreController@index');
|
||||
Route::get('/teamstore/{storename}/product/{producurl}', 'teamstore\TeamStoreController@productDetails');
|
||||
Route::post('/teamstore/q/add-to-cart', 'teamstore\TeamStoreController@addToCart');
|
||||
Route::get('/teamstore/q/clearsession', 'teamstore\TeamStoreController@clearSession');
|
||||
Route::post('/teamstore/q/add-voucher', 'teamstore\TeamStoreController@addVoucher');
|
||||
Route::post('/teamstore/q/add-new-row', 'teamstore\TeamStoreController@addNewRow');
|
||||
Route::post('/teamstore/checkpassword', 'teamstore\TeamStoreController@checkTeamStorePassword');
|
||||
|
||||
// User Routes (Protected by normaluser middleware)
|
||||
Route::group(['middleware' => 'normaluser', 'prefix' => 'user'], function () {
|
||||
Route::get('/', 'user\UserController@index');
|
||||
|
||||
// Address Book
|
||||
Route::get('address-book', 'user\UserController@addressBook');
|
||||
Route::get('address-book/create', 'user\UserController@createAddressBook');
|
||||
Route::post('address-book/save', 'user\UserController@saveAddressBook');
|
||||
Route::get('address-book/edit/{id}', 'user\UserController@editAddressBook');
|
||||
Route::post('address-book/update', 'user\UserController@updateAddressBook');
|
||||
|
||||
// Profile
|
||||
Route::get('profile', 'user\UserController@profile');
|
||||
Route::get('profile/edit', 'user\UserController@editProfile');
|
||||
Route::post('profile/update', 'user\UserController@updateProfile');
|
||||
Route::get('profile/change-password', 'user\UserController@changePassword');
|
||||
Route::post('profile/update-password', 'user\UserController@updatePassword');
|
||||
|
||||
// Orders
|
||||
Route::get('orders', 'user\UserController@orders');
|
||||
Route::get('orders/view/{ck}', 'user\UserController@orderDetails');
|
||||
|
||||
// My Designs
|
||||
Route::get('my-designs', 'user\UserController@myDesigns');
|
||||
Route::get('my-designs/view/{id}', 'user\UserController@viewDesign');
|
||||
Route::post('my-designs/update', 'user\UserController@updateDesignDetails');
|
||||
Route::get('my-designs/sell-design/{designCode}', 'user\UserController@sellDesign');
|
||||
Route::post('my-designs/addstoreitem', 'user\UserController@saveNewStoreItem');
|
||||
Route::get('my-designs/buy-design/{designCode}', 'user\UserController@buyDesign');
|
||||
|
||||
// Store Management
|
||||
Route::get('store', 'user\UserController@store');
|
||||
Route::get('store-items', 'user\UserController@storeItems');
|
||||
Route::get('store-items/item/{url}', 'user\UserController@viewStoreItem');
|
||||
Route::post('store-items/update', 'user\UserController@storeItemUpdate');
|
||||
Route::get('store-items/add-item', 'user\UserController@addStoreItem');
|
||||
Route::post('store-items/save-new-item', 'user\UserController@saveNewItem');
|
||||
Route::post('store-items/save-new-item-image', 'user\UserController@saveNewItemImage');
|
||||
Route::get('store-items/re-arrange', 'user\UserController@itemStoreReArrange');
|
||||
Route::post('store-items/delete', 'user\UserController@deleteStoreItem');
|
||||
|
||||
// Store Settings
|
||||
Route::get('store-settings', 'user\UserController@storeSetting');
|
||||
Route::post('store-settings/update', 'user\UserController@storeSettingUpdate');
|
||||
|
||||
// Store Orders
|
||||
Route::get('store-orders', 'user\UserController@storeOrders');
|
||||
|
||||
// Email Verification
|
||||
Route::get('email-verify', 'user\UserController@emailVerify');
|
||||
Route::post('post/resend-verification', 'user\UserController@resendVericationCode');
|
||||
Route::post('post/verify-code', 'user\UserController@verifyCode');
|
||||
|
||||
// AJAX Routes
|
||||
Route::post('update-active-thumbnail', 'user\UserController@updateActiveThumbnail');
|
||||
Route::post('post/save-thumbnail-ordering', 'user\UserController@saveThumbnailOrdering');
|
||||
Route::post('post/save-item-ordering', 'user\UserController@saveItemOrdering');
|
||||
Route::post('post/show-store-order-details', 'user\UserController@showStoreOrderDetails');
|
||||
Route::post('post/delete-image-thumb', 'user\UserController@deleteImageThumb');
|
||||
|
||||
// Announcement
|
||||
Route::get('announcement', 'user\UserController@announcementIndex');
|
||||
Route::post('announcement/updateSave', 'user\UserController@announcementUpdateSave');
|
||||
Route::post('announcement/status/update', 'user\UserController@announcementUpdateStatus');
|
||||
});
|
||||
|
||||
// PayPal Routes (Protected by auth middleware)
|
||||
Route::group(['middleware' => 'auth'], function () {
|
||||
Route::get('payPremium', 'paypal\PaypalController@payPremium')->name('payPremium');
|
||||
Route::get('getCheckout', 'paypal\PaypalController@getCheckout')->name('getCheckout');
|
||||
Route::get('getDone', 'paypal\PaypalController@getDone')->name('getDone');
|
||||
Route::get('getCancel', 'paypal\PaypalController@getCancel')->name('getCancel');
|
||||
Route::get('getDoneTest', 'paypal\PaypalController@getDoneTest')->name('getDoneTest');
|
||||
});
|
||||
|
||||
// Admin Routes (Protected by admin middleware)
|
||||
Route::group(['middleware' => 'admin', 'prefix' => 'admin'], function () {
|
||||
Route::get('/', function () {
|
||||
return view('sub_pages.index');
|
||||
});
|
||||
|
||||
// Sports Management
|
||||
Route::get('sports', 'SportsController@displayAllSports');
|
||||
Route::get('sports/add', 'SportsController@displayAddSportPage');
|
||||
Route::post('sports/save', 'SportsController@saveNewSports');
|
||||
Route::get('sports/edit/{sportsname}', 'SportsController@sportsDetails');
|
||||
Route::post('sports/update', 'SportsController@updateSports');
|
||||
Route::get('sports/sportsname', 'SportsController@selectSportsName');
|
||||
|
||||
// Templates Management
|
||||
Route::get('templates', 'TemplatesController@displayTemplates');
|
||||
Route::post('templates/id/{id}', 'TemplatesController@getTemplates');
|
||||
Route::get('templates/add', 'TemplatesController@displayAddTemplatePage');
|
||||
Route::get('templates/type', 'TemplatesController@getTemplateTypes');
|
||||
Route::get('templates/getlastid', 'TemplatesController@getLastId');
|
||||
Route::post('templates/save', 'TemplatesController@saveNewTemplates');
|
||||
Route::get('templates/edit/{tempcode}', 'TemplatesController@displayEditTemplatePage');
|
||||
Route::post('templates/update', 'TemplatesController@updateTemplate');
|
||||
Route::get('templates/edit/{tempcode}/p-add', 'PrintPatternController@displayAddPrintTemplatePage');
|
||||
|
||||
// Patterns Management
|
||||
Route::get('pattern/get', 'PatternsController@getPatterns');
|
||||
Route::post('pattern/get/withvalue', 'PatternsController@getPatternsWithPostValue');
|
||||
|
||||
// Print Template
|
||||
Route::post('print-template/save', 'PrintPatternController@savePrintPattern');
|
||||
});
|
||||
|
||||
// Cliparts Routes
|
||||
Route::get('cliparts/index', 'cliparts\ClipartsController@index');
|
||||
23
test-key.php
Normal file
23
test-key.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
require __DIR__.'/vendor/autoload.php';
|
||||
|
||||
$app = require_once __DIR__.'/bootstrap/app.php';
|
||||
|
||||
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
|
||||
|
||||
try {
|
||||
echo "APP_KEY from env: " . env('APP_KEY') . "\n";
|
||||
echo "APP_CIPHER from config: " . config('app.cipher') . "\n";
|
||||
echo "Key starts with base64: " . (strpos(env('APP_KEY'), 'base64:') === 0 ? 'YES' : 'NO') . "\n";
|
||||
|
||||
$key = env('APP_KEY');
|
||||
if (strpos($key, 'base64:') === 0) {
|
||||
$decoded = base64_decode(substr($key, 7));
|
||||
echo "Decoded key length: " . strlen($decoded) . " bytes\n";
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo "Error: " . $e->getMessage() . "\n";
|
||||
echo "File: " . $e->getFile() . ":" . $e->getLine() . "\n";
|
||||
}
|
||||
88
test-laravel-5.5.sh
Executable file
88
test-laravel-5.5.sh
Executable file
@@ -0,0 +1,88 @@
|
||||
#!/bin/bash
|
||||
# Test Laravel 5.5 upgrade in Docker container
|
||||
|
||||
echo "========================================="
|
||||
echo "Laravel 5.5 Upgrade Test Script"
|
||||
echo "========================================="
|
||||
echo ""
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Build the container
|
||||
echo -e "${YELLOW}Step 1: Building Docker container with PHP 7.0...${NC}"
|
||||
docker compose -f docker-compose.local.yml build app
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}✗ Docker build failed${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Docker build successful${NC}"
|
||||
echo ""
|
||||
|
||||
# Start the container
|
||||
echo -e "${YELLOW}Step 2: Starting container...${NC}"
|
||||
docker compose -f docker-compose.local.yml up -d app
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}✗ Failed to start container${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Container started${NC}"
|
||||
echo ""
|
||||
|
||||
# Wait for container to be ready
|
||||
echo "Waiting for container to be ready..."
|
||||
sleep 5
|
||||
|
||||
# Check PHP version
|
||||
echo -e "${YELLOW}Step 3: Verifying PHP version...${NC}"
|
||||
PHP_VERSION=$(docker compose -f docker-compose.local.yml exec -T app php -v | head -1)
|
||||
echo "PHP Version: $PHP_VERSION"
|
||||
echo ""
|
||||
|
||||
# Check Laravel version
|
||||
echo -e "${YELLOW}Step 4: Verifying Laravel installation...${NC}"
|
||||
LARAVEL_VERSION=$(docker compose -f docker-compose.local.yml exec -T app php artisan --version)
|
||||
echo "Laravel Version: $LARAVEL_VERSION"
|
||||
echo ""
|
||||
|
||||
# Test route:list
|
||||
echo -e "${YELLOW}Step 5: Testing route:list command...${NC}"
|
||||
docker compose -f docker-compose.local.yml exec -T app php artisan route:list 2>&1 | head -20
|
||||
echo ""
|
||||
|
||||
# Check for errors in logs
|
||||
echo -e "${YELLOW}Step 6: Checking for errors...${NC}"
|
||||
docker compose -f docker-compose.local.yml logs app | grep -i error | tail -10
|
||||
echo ""
|
||||
|
||||
# Final status
|
||||
echo "========================================="
|
||||
if docker compose -f docker-compose.local.yml exec -T app php artisan list > /dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ Laravel 5.5 upgrade successful!${NC}"
|
||||
echo -e "${GREEN} All artisan commands are working${NC}"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " 1. Test the application: http://localhost:8080"
|
||||
echo " 2. Check database migrations"
|
||||
echo " 3. Test authentication flow"
|
||||
echo " 4. Verify designer functionality"
|
||||
else
|
||||
echo -e "${RED}✗ Some issues detected${NC}"
|
||||
echo "Check the logs above for details"
|
||||
fi
|
||||
echo "========================================="
|
||||
|
||||
# Keep container running
|
||||
echo ""
|
||||
echo "Container is running. Access it with:"
|
||||
echo " docker compose -f docker-compose.local.yml exec app bash"
|
||||
echo ""
|
||||
echo "Stop with:"
|
||||
echo " docker compose -f docker-compose.local.yml down"
|
||||
@@ -39,7 +39,7 @@ echo ""
|
||||
# Test 3: Database connection
|
||||
echo "Test 3: Database Connection"
|
||||
echo "----------------------------"
|
||||
docker exec $CONTAINER_NAME php artisan tinker --execute="DB::connection()->getPdo(); echo 'DB Connected';" || { echo "❌ Database connection failed"; exit 1; }
|
||||
docker exec $CONTAINER_NAME php -r "require 'vendor/autoload.php'; \$app = require_once 'bootstrap/app.php'; \$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap(); try { DB::connection()->getPdo(); echo 'DB Connected\n'; } catch(Exception \$e) { echo 'DB Error: ' . \$e->getMessage() . '\n'; exit(1); }" || { echo "❌ Database connection failed"; exit 1; }
|
||||
echo "✓ Database connected"
|
||||
echo ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user