这篇是 2021 年 11 月记的。当时散在好几条笔记里,这里并成了一篇,原文照抄,拼错的库名(guzzie、amsey UUID)也留着。

装环境,先从扩展开始

  • 装不上很大一部分原因是 php 扩展没启动,mbstring、dom 都要启动。
  • 指令没响应是没有加 path。
  • php-pdo、php-mysql 这些都要手动装,用 phpenmod 来启用:
phpenmod gd
phpenmod pdo_mysql
  • 全局指令的 path:
export PATH=$PATH:$HOME/.config/.composer/vendor/bin
  • 我也不知道是第几次学了。算了算了再学一遍。
  • "" 能插值,'' 不能插。
  • comment 用 // 就好了。别的也支持但是就用这个。

composer

  • getcomposer repository 里头找安装文件。才五百多个星,一个包管理器就这点,这是否
  • composer require、composer update、composer global require

从 JS 找 PHP 的对应库

在 JS 里用惯的PHP 这边的对应
lodashradash
axiosguzzie
dayjscarbon
docxphpword
nodemailerphpmailer
uuidamsey UUID
crypto-jsbuiltin
exceljsphpspreadsheet
fastqsymfony messenger / laravel
ormdoctrine orm / eloquent orm
zodsymfony validator / respect validateion
validateWebGeeker-Validation

thinkphp

  • imagecreate() 找不到,要装 php-gd。

laravel

  • create 之后要 composer install。
  • sanctum:
php artisan session:table
php artisan migrate
  • csrf 要放 header 不然 laravel 这头猪不认。
  • auth.php 里 guards.api.driver = sanctum。
  • auth.php 里 defaults.guard = web。
  • User model extends Illuminate\Foundation\Auth\User。

现在回头看

  • 库名拼错了一堆:guzzie 是 guzzle,amsey UUID 是 ramsey/uuid,respect validateion 是 Respect\Validation。当时全靠手打,一个都没查。
  • 「csrf 要放 header」:Laravel 的 api 路由本来就不套 CSRF 中间件,我那时候多半是把 API 路由写进了 web 组,才一路撞到 419。
  • phpenmod 是 Debian 系才有的一套;换个发行版就得自己去改 php.ini。
  • thinkphp 那条:装完 php-gd 还得确认 php.ini 里的 extension=gd 没被注释掉,不然一样报找不到函数。