最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(1)

    正文概述 转载于:掘金(王中阳Go)   2021-08-16   602

    这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

    之前写了一篇Laravel提高DB查询效率的文章,转发到群里后竟然有人质疑我说“Laravel是他好几年前用的框架,没想到现在还有人在用。”

    纳尼,什么意思嘛?别忘了php是最好的语言!

    个人认为Laravel是非常优雅的开发框架:优雅的设计模式、强大的功能实现、各种方便的扩展、持续的版本更新,更主要的是迄今为止我认为最优秀的技术开发社区。

    我必须为Laravel打Call。

    2020年9月8号,Laravel发布了8.0版本。 Laravel计划于2022年1月25日发布9.0版本。

    下面我介绍一下目前Laravel最新版(8.0版本)的新特性:

    Laravel Jetstream

    Laravel Jetstream 是为 Laravel 设计的精美的应用程序脚手架。Jetstream 为你的下一个项目提供了完美的起点,包括登录、注册、电子邮件验证、双因子认证、会话管理、通过 Laravel Sanctum 提供的 API 支持以及可选的团队管理。Laravel Jetstream 替代并改进了可用于早期版本的 Laravel 的旧式身份验证 UI 支架。 Jetstream 是使用 Tailwind CSS 设计的,你可以选择 Livewire 或 Inertia 脚手架。

    模型类目录

    由于压倒性的社区需求,现在默认的 Laravel 框架包含一个 app/Models 目录。我们希望你喜欢 Eloquent 的新家!所有相关的生成器命令均已更新,假定模型存在于 app/Models 目录(如果存在)。如果该目录不存在,则框架将假定你的模型应放置在 app 目录。

    模型工厂类

    模型工厂类由泰勒・奥特威尔(Taylor Otwell)贡献。 Eloquent 模型工厂 已完全重写为基于类的工厂,并有完美的关联支持。 例如 Laravel 中的 UserFactory 是这样写的:

    <?php
    
    namespace Database\Factories;
    
    use App\Models\User;
    use Illuminate\Database\Eloquent\Factories\Factory;
    use Illuminate\Support\Str;
    
    class UserFactory extends Factory
    {
        /**
         * 工厂对应模型的名称。
         *
         * @var string
         */
        protected $model = User::class;
    
        /**
         * 定义模型的默认状态。
         *
         * @return array
         */
        public function definition()
        {
            return [
                'name' => $this->faker->name,
                'email' => $this->faker->unique()->safeEmail,
                'email_verified_at' => now(),
                'password' => 'xxxxxxxxx', // password
                'remember_token' => Str::random(10),
            ];
        }
    }
    

    由于在生成模型时可以使用新的 HasFactory trait,因此可以像以下方式使用模型工厂:

    use App\Models\User;
    
    User::factory()->count(50)->create();
    

    因为模型工厂现在是简单的 PHP 类,状态转换可以直接写成一个方法。除此之外,你也可以给你的 Eloquent 模型工厂添加任意你需要的工具类。 例如,你的 User 模型 有个 suspended 属性,现在你想修改它的一个默认的属性值,你可以使用基类工厂类的 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型的 PHP 方法。

    /**
     * 表示这个用户处于禁止状态
     *
     * @return \Illuminate\Database\Eloquent\Factories\Factory
     */
    public function suspended()
    {
        return $this->state([
            'account_status' => 'suspended',
        ]);
    }
    

    定义好我们就可以这样使用:

    use App\Models\User;
    
    User::factory()->count(5)->suspended()->create();
    

    像之前说到的,Laravel 8 的模型工厂包含了对模型关联的完美支持。现在假定我们的 User 模型有一个 posts 关联方法,我们只需要执行下面的代码就可以生成一个有 3 篇文章的用户。

    $users = User::factory()
                ->hasPosts(3, [
                    'published' => false,
                ])
                ->create();
    

    为了简化升级过程,我们发布了一个 laravel/legacy-factories 扩展包,可以在 Laravel 8 中支持以前的模型工厂。

    学习群请点这里,一起学习,共同进步!!!

    竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(1)


    起源地下载网 » 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(1)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元