laravel9探索
环境:
- Win11专业版系统
- WSL2 Oracle Linux8.5
- DockerDesktop
- php8
- composer2
- docker 设置默认WSL2
WSL2+Docker环境一
安装
# 下载源码
git clone https://github.com/laravel/laravel.git
# 安装依赖包
comoser update
# 生成加密串
php artisan key:generate
# 测试
php artisan serve
初始化
# 安装sail,自带docker-compose.yml
php artisan sail:install
# 配置容器用户
useradd sail
usermod -a -G sail sail
.env 文件添加 WWWGROUP、WWWUSER配置为1000
.env 文件配置 DB_HOST=laravel_mysql_1 REDIS_HOST=laravel_reids_1
关闭本地 mysql服务(如:xampp、phpStudy)
# 启动容器
./vendor/bin/sail up -d
# 配置本地host mysql容器指向本地
127.0.0.1
# 初始化数据库
php artisan migrate
WSL2+Docker环境二
启动docker,设置默认WSL2
进入WSL2
# laravel9 是可以自定义的目录名
curl -s "https://laravel.build/laravel9?with=mysql,redis&devcontainer" | bash
cd laravel9
./vendor/bin/sail up -d
# 设置host
127.0.0.1 laravel9_mysql_1
127.0.0.1 laravel9_reids_1
# .env 文件配置
DB_HOST=laravel_mysql_1
REDIS_HOST=laravel9_reids_1
组件
breeze
# 下载
composer require laravel/breeze --dev
php artisan breeze:install
# 安装 nodejs 有版本要求 >12.14
yum remove npm
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
或
curl -sL https://deb.nodesource.com/setup_15.x | bash -
yum install nodejs
# 修改 package-lock.json, 删除 fsevents 依赖
# 安装 npm
npm install && npm run dev
php artisan migrate
jetstream
composer require laravel/jetstream
npm install
npm run dev
php artisan migrate
npm run dev
调试
- 在原生 PHP 中,可以通过 php -a 命令使用交互式 Shell
- Laravel Tinker(基于 PsySH 实现)可以在命令行中实现与 Laravel 应用的各种交互,包括数据库的增删改查。 ```shell
启动
php artisan tinker
查看指定方法的定义和注释
doc config
查看指定方法的详细代码
show config
调用方法
evn(‘DB_HOST'); config(‘app'); App\Models\User::last(); App\Models\User::all()->toArray();
可以通过 vendor:publish 命令发布 Tinker 配置文件
php artisan vendor:publish –provider="Laravel\Tinker\TinkerServiceProvider"
注意:Dispatchable 类中的 dispatch 辅助函数和 dispatch 方法已被弃用以将任务添加至队列中。
因此,当你使用 Tinker 时,请使用 Bus::dispatch 或 Queue::push 来分发任务。
#如果你想将命令添加到白名单,请将该命令添加到 tinker.php 配置文件的 commands 数组中: vendor/laravel/tinker/config/tinker.php ‘commands' => [ // App\Console\Commands\ExampleCommand::class, ],
下载本地php手册
wget http://psysh.org/manual/zh/php_manual.sqlite wget http://psysh.org/manual/en/php_manual.sqlite
linux下 放到 ~/.local/share/psysh/, /usr/local/share/psysh/
Windows下 放到 %APPDATA%\PsySH\
php artisan tinker 下可以使用 doc array_column 查看方法说明,但是看不到源码
``` PHP-manual