Table des matières
1、升级依赖
2、Application
认证
集合
3、Eloquent集合基类
保留Key
4、数据库
MySQL 日期
MySQLJSON 字段类型
5、Eloquent
日期转化
全局作用域
主键
6、 异常处理
7、 IronMQ
8、 存储
9、 验证
Maison développement back-end tutoriel php [ Lumen 5.2 文档 ] 起步 -- 升级指南

[ Lumen 5.2 文档 ] 起步 -- 升级指南

Jun 23, 2016 pm 01:16 PM

Lumen5.2 只专注与提供无状态API,因此,session已经从框架中移除,如果你想要使用session,需要切换到 Laravel 5.2。

从 Lumen 5.2升级到 Laravel 5.2 很简单,只需要将路由和应用中自己编写的类拷贝到 Laravel 中即可,由于 Laravel 和 Lumen 共用很多底层组件,即使是自己编写的类也无需做大的改动。

1、升级依赖

更新 composer.json文件指向 laravel/lumen-framework 5.2.*

2、Application

Lumen 不再实现 Illuminate\Contracts\Foundation\Application契约,任何声明此类型依赖的都需要更新为直接引用 Laravel\Lumen\Application类。

认证

由于Lumen不再支持会话,认证完全基于API token或请求头来实现。关于Lumen中认证的实现及使用请参考完整认证文档。

集合

3、Eloquent集合基类

Eloquent集合实例现在返回一个集合基类( Illuminate\Support\Collection)以便提供如下几种方法: pluck、 keys、 zip、 collapse、 flatten、 flip。

保留Key

slice、 chunk和 reverse方法现在可以保留集合中的key,如果你不想要这些方法保留key,可以使用 Collection实例上的 values方法。

4、数据库

MySQL 日期

从 MySQL 5.7 开始, 0000-00-00 00:00:00不再被认为是一个有效的日期,因为 strict模式是默认开启的,所有时间戳字段在插入记录到数据库的时候必须接收一个有效的默认值,你可以在迁移中使用 useCurrent方法将时间戳字段默认设置为当前时间戳,或者调用 nullable方法以允许null值:

$table->timestamp('foo')->nullable();$table->timestamp('foo')->useCurrent();$table->nullableTimestamps();
Copier après la connexion

MySQLJSON 字段类型

MySQL 5.7 起开始支持 json 字段,所以 json字段类型现在可以创建一个json字段并保存到数据库,如果使用MySQL版本低于5.7,那么需要使用 text字段保存json数据到该字段。

5、Eloquent

日期转化

被添加到$casts的所有被标记为date或datetime的属性在调用模型或集合上的toArray方法时现在都会被转化为字符串,从而和$dates数组中定义的日期转化保持一致。

全局作用域

全局作用域的实现被重写以便使用起来更加简单,全局作用域不再需要 remove方法,所以你编写的代码中如果调用了该方法需要将其移除。

如果你调用了Eloquent查询构建器上的 getQuery方法来访问底层的查询构建器实例,现在需要将其改为 toBase。

如果你调用了 remove方法,需要将其修改为 $eloquentBuilder->withoutGlobalScope($scope)。

Eloquent查询构建器新增了 withoutGlobalScope和 withoutGlobalScopes方法,所有调用 $model->removeGlobalScopes($builder)的地方现在需要修改为更加简单的 $builder->withoutGlobalScopes()。

主键

默认情况下,Eloquent假设你的主键是整型并且会将其自动转化为整型,设置任何不是整型的主键需要设置Eloquent模型上的 $incrementing属性值为 false:

/** * Indicates if the IDs are auto-incrementing. * * @var bool */public $incrementing = true;
Copier après la connexion

6、 异常处理

App\Exceptions\Handler类的 $dontReport属性现在需要包含至少以下几种异常类型:

use Illuminate\Validation\ValidationException;use Illuminate\Auth\Access\AuthorizationException;use Illuminate\Database\Eloquent\ModelNotFoundException;use Symfony\Component\HttpKernel\Exception\HttpException;/** * A list of the exception types that should not be reported. * * @var array */protected $dontReport = [    AuthorizationException::class,    HttpException::class,    ModelNotFoundException::class,    ValidationException::class,];
Copier après la connexion

7、 IronMQ

IronMQ 队列驱动现在被转移到其自己的包中,核心框架不再包含其处理,要使用IronMQ,请参考: http://github.com/LaravelCollective/iron-queue

8、 存储

如果你使用了Laravel的Flysystem,需要注册 filesystem绑定,添家如下代码到 bootstrap/app.php:

$app->singleton('filesystem', function ($app) {    return $app->loadComponent(        'filesystems',        Illuminate\Filesystem\FilesystemServiceProvider::class,        'filesystem'    );});
Copier après la connexion

9、 验证

被Lumen控制器基类使用的 ValidatesRequeststrait现在被合并到 ProvidesConvenienceMethodstrait。

如果你先前在控制器基类之外使用了 ValidatesRequeststrait,可以将其从5.1分支拷贝过来或者直接使用 ProvidesConvenienceMethodstrait。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

See all articles