laravelsnip

كتابات: 
IDE helper: https://github.com/barryvdh/laravel-ide-helper
// Laravel create new project
lando composer create-project laravel/laravel project
// Laravel installation
composer install -n
mkdir -p storage/framework/{sessions,views,cache}
chmod -R 0777 storage/framework
php artisan key:generate
php artisan migrate:refresh --seed
// deploy
cd /var/www/html/$1
git pull
#composer install --no-interaction --no-dev
#composer update -n
composer install --no-interaction
chown www-data:www-data -R /var/www/html/$1
php artisan migrate --force
php artisan optimize:clear
php artisan cache:clear
#php artisan config:clear
#php artisan config:cache
// Useful Laravel commands
php artisan route:list // to list all defined routes
php artisan migrate:fresh --seed // To run the database seeders
* * * * * cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1
// When you want to loop all db table records, use ::cursor()
SOURCE: https://webomnizz.com/working-with-lazy-collection-in-laravel-6/
// https://www.amitmerchant.com/using-lazy-collections-on-memory-hungry-operations-in-laravel6/
// Deploy commands
git pull
composer install --no-interaction --no-dev
php artisan migrate --force
php artisan optimize:clear
php artisan cache:clear
// 20190225
php artisan make:migration create_replies_table
php artisan migrate
// re migrate a specific migration file
php artisan migrate:refresh --path=./database/migrations/FILE_NAME.php
// filament
php artisan make:filament-resource MODEL_NAME_HERE

// Create user
php artisan tinker
DB::table('users')->insert(['name'=>'admin','email'=>'[email protected]','password'=>Hash::make('admin')])

php artisan tinker --execute='User::create(["name"=>"admin", "email"=>"[email protected]", "email_verified_at"=> now(), "password"=> bcrypt("admin")]);'
// Steps to create a new DB table.
1. Create the migrate `php artisan make:model MODE_NAME_HERE -m ` (the -m is to create a migration file for this model)
1. Create a resource with controller. `php artisan make:controller CONTROLLER_NAME_HERE --resource`
1. Add the route to this controller. `Route:resource('posts', 'PostsController');`
php artisan make:command CommandNameHereCommand
// Command signature naming: model:action:column
// https://www.youtube.com/watch?v=o1NVVntEvd0
// Override Filament views templates files .. thanks Rakan
php artisan vendor:publish --tag=filament-views
// Add config variable
1. Go to config/app.php
1. Add your config variable name at the end of this config file. `'your_variable_name' => env('YOUR_VARIABLE_NAME', NULL),`
1. Add the `YOUR_VARIABLE_NAME=hello` into your .env file.
1. You can now get the value by `config('app.your_variable_name')`
// SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_mobile_unique`(`mobile`))
nano app/Providers/AppServiceProvider.php
// use this class
use Illuminate\Support\Facades\Schema;
// in boot()
Schema::defaultStringLength(191);
// then drop the DB
artisan migrate:fresh
// Filament login 403 error
You need to change the `.env` file value of 
APP_ENV=local

Please refer to https://filamentphp.com/docs/2.x/admin/users#authorizing-access-to-the-admin-panel
To allow admin access on non-local environments/
// Ignore SSL certificate for self-signed certificates.
$response = Http::withoutVerifying()
        ->withHeaders(['Authorization' => 'Bearer HERE', 'Cache-Control' => 'no-cache'])
        ->withOptions(["verify"=>false])
        ->post($url,$fields);
// Cronjob command for Laravel cron job
* * * * * /usr/bin/php /var/www/html/artisan queue:work --timeout=30 --tries=1 --stop-when-empty
# Lando file
name: iot
recipe: laravel
config:
  webroot: project/public
  php: 8.1
tooling:
  automatus:
    service: appserver
    description: Install the application at first time.
    cmd:
      #      - cp .env.example .env
      - mkdir -p /app/project/bootstrap/cache
      - mkdir -p /app/project/storage/framework/sessions
      - mkdir -p /app/project/storage/framework/testing
      - mkdir -p /app/project/storage/framework/views
      - mkdir -p /app/project/storage/framework/cache/data
      - mkdir -p /app/project/storage/logs
      - mkdir -p /app/project/storage/app/public/pdf
      # - cp /app/project/.env.example /app/project/.env
      - cd /app/project && composer install
      - php /app/project/artisan key:generate
      #- php /app/project/artisan vendor:publish --all
      # - php /app/project/artisan storage:link --relative
      - php /app/project/artisan storage:link
      - php /app/project/artisan migrate:refresh --seed
      # - php /app/project/artisan tinker --execute='User::create(["name"=>"admin", "email"=>"[email protected]", "email_verified_at"=> now(), "password"=> bcrypt("admin")]);'
  dejavu:
    service: appserver
    description: Install and apply new changes.
    cmd:
      - cd /app/project && composer install --no-interaction
      - php /app/project/artisan migrate --force
      - php /app/project/artisan optimize:clear
      - php /app/project/artisan cache:clear
# my Laravel ignore list
.idea
project/bootstrap/cache
project/storage
project/cache
project/config/ignition.php
project/config/flare.php
project/config/tinker.php

Share this post