- client: app\Http\Controllers\Auth
- admin: app\Http\Controllers\Admin\Auth
- barryvdh/laravel-ide-helper + artisan
- doctrine/dbal + artisan
- mailtrap.io => SMTP faker
- AWS SES => SMTP
- patricktalmadge/bootstrapper:5.10.* + service provider + facade
- kris/laravel-form-builder:1.11 + service provider + facade
- Route::resource('users', 'UsersController');
- Routes Model Binding => route argument equal to the one from the action
- $navbar = Navbar::withBrand(config('app.name'), route('admin.dashboard'))->inverse();
- $menusLeft = Navigation::links($arrayLinksLeft);
- $menusRight = Navigation::links($arrayLinksRight)->right();
- $formLogout = FormBuilder::plain([]);
- php artisan make:controller "Admin\UsersController" --resource --model="CodeFlix\Models\User"
- php artisan make:form "Forms\UserForm" --fields="name:text, email:email"
- Repositories are services from access layer and integration with the databases entities
- prettus/l5-repository:2.6.27 + service provider
- php artisan vendor:publish --provider="Prettus\Repository\Providers\RepositoryServiceProvider"
- rename User.php to User_old.php
- php artisan make:repository User
- delete new User.php and rename again User_old.php to User.php
- delete new migration of User model
- In register() method on RepositoryServiceProvider.php:
- $this->app->bind(UserRepository::class, UserRepositoryEloquent::class);
- jrean/laravel-user-verification:4.1.2 + service provider + facade
- php artisan vendor:publish --provider="Jrean\UserVerification\UserVerificationServiceProvider" --tag=migrations
- edit namespace of the user model on the new migration
- php artisan vendor:publish --provider="Jrean\UserVerification\UserVerificationServiceProvider" --tag=config
- php artisan migrate
- adjust user admin data migration to be verified by default
- add route middleware IsVerified::class on app\Http\Kernel.php
- add middleware isVerified on admin group routes
- php artisan vendor:publish --provider="Jrean\UserVerification\UserVerificationServiceProvider" --tag=views
- php artisan make:controller EmailVerificationController
- add EmailVerification routes on routes/web.php
- edit EmailVerification views
- create resources/lang//user-verification.php
- php artisan make:controller "Admin\Auth\UserSettingsController" --resource
- implements edit and update actions
- add routes on routes\web.php
- Route::get('users/settings', 'Auth\UserSettingsController@edit')->name('user-settings.edit');
- Route::put('users/settings', 'Auth\UserSettingsController@update')->name('user-settings.update');
- refactor redirectAfterVerification() action of EmailVerificationController to redirect to route('admin.user-settings.edit')
- php artisan make:form "Forms\UserSettingsForm" --fields="password:password, password_confirmation:password"
- create resources/views/admin/auth/setting.blade.php
- add new menu option on resources/views/layouts/admin.blade.php
- files used
- new:
- app/Http/Controllers/Admin/Auth/UserSettingsController.php
- app/Forms/UserSettingsForm.php
- resources/views/admin/auth/setting.blade.php
- modified:
- app/Http/Controllers/EmailVerificationController.php
- app/Repositories/UserRepositoryEloquent.php
- resources/views/shared/navbar.blade.php
- routes/web.php
- new:
- php artisan make:entity Category
- Presenter: no
- Validator: no
- Controller: yes
- files used
- modified:
- config/app.php
- new:
- app/Http/Controllers/CategoriesController.php
- app/Http/Requests/
- app/Models/Category.php
- app/Providers/RepositoryServiceProvider.php
- app/Repositories/
- database/migrations/2017_11_12_204552_create_categories_table.php
- modified:
- php artisan make:repository Category
- php artisan make:repository Serie
- php artisan make:controller "Admin\SeriesController" --resource --model="CodeFlix\Models\Serie"
- php artisan make:seeder "SeriesTableSeeder"
- php artisan make:form "Forms\SerieForm" --fields="title:text, description:textarea"
- php artisan migrate:refresh --seed
- php artisan make:repository Video
- php artisan make:form "Forms\VideoForm" --fields="title:text, description:textarea"
- php artisan make:controller "Admin\VideosController" --resource --model="CodeFlix\Models\Video"
- In VideosController: implement all actions
- In web.php routes: add videos resources routes
- php artisan make:seeder VideosTableSeeder
- In VideosTableSeeder: $video->serie()->associate($serie);
- php artisan migrate:refresh --seed
- In Videos.php model: set $fillable and implement TableInterface methods
- php artisan make:migration create_category_video_table --create=category_video
- php artisan migrate
- In VideosTableSeeder: $video->categories()->attach($categories->random(4)->pluck('id'));
- php artisan migrate:refresh --seed
- In resources/views/admin/videos: create and implement views
- to manage videos using tabs, use blade component and slot
- php artisan make:controller "Admin\VideoRelationsController" --resource --model="CodeFlix\Models\Video"
- In VideoRelationsController: implement create and store actions
- In web.php routes: add videos relations routes
- php artisan make:form "Forms\VideoRelationForm"
- handling thumb/image upload/download
- mkdir -p app/Media
- create trait MediaStorages.php
- create trait SeriePaths.php
- create trait ThumbUploads.php
- refactor SerieTableSeeder.php to upload thumb and update the model
- requirements
- composer require folklore/image:0.3.20
- apt update && apt install php-gmagick # use 'gd' or 'imagick' alternatively
- add Facade 'Image' => \Folklore\Image\Facades\Image::class
- add Provider Folklore\Image\ImageServiceProvider::class
- php artisan vendor:publish --provider="Folklore\Image\ImageServiceProvider"
- refactor Serie.php, SeriesController.php, SeriePaths.php, SerieRepositoryEloquent.php
- refactor web.php
- refactor SerieForm.php, admin/series/index.blade.php
- refactor ThumbUploads.php