marchie / lad-utils
在Azure上部署Laravel应用程序时,执行Composer后安装命令的命令行工具
Requires
- php: >=5.4.0
- illuminate/config: ~5.0
- illuminate/support: ~5.0
- laravel/framework: >=5.0
Requires (Dev)
- laravel/laravel: ^5.2.0
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-14 18:20:43 UTC
README
TL; DR
Artisan命令,用于帮助在Microsoft Azure上部署Laravel应用程序。
背景故事
将Laravel应用程序部署到Azure有点像一门神秘的艺术。
有指南 在外,介绍了如何进行部署,但对我来说,最终结果并不如我所愿。
我这是什么意思呢?嗯,我正在使用SyntaxC4的Composer扩展来部署我的应用程序,这个扩展非常棒。然而,标准的Laravel优化命令有问题:
php artisan optimize
运行得像狗一样慢。我在说,在一个双核Azure实例上需要半小时才能完成,或者永远不会完成(也就是说,我杀掉它之前要等超过24小时),而在我那台不起眼的开发机上只需要几秒钟。更糟糕的是,php artisan optimize
命令所做的主要耗时操作是运行composer dump-autoload -o
,而这个操作Azure的Composer扩展已经做了。
(NB:原因似乎与最终通过后安装命令运行的过程数量有关。Composer是一个PHP应用程序,它通过命令行调用后安装命令。php artisan optimize
的后安装命令启动另一个PHP进程,然后通过命令行调用composer dump-autoload -o
。这启动了另一个PHP进程,一切似乎都变得非常缓慢。)
这个包的作用
这个包为你提供了一个额外的Artisan命令,你可以在你的composer.json
中将其用作后安装命令:
azure:optimize-classes
扩展了标准的Artisan optimize
命令,但是它不会调用composer dump-autoload -o
。注意,如果你的应用程序处于调试模式,则不会编译类。
(NB:composer dump-autoload -o
命令已被Azure Composer扩展调用)
(感谢@22media on Laracasts为此付出的努力)
用法
您需要将此包添加到您的composer.json
文件中
{ ... "require": { ... "marchie/lad-utils": "dev-master", ... }, ... }
然后,运行composer update
以拉取此包。
在包被拉取后,将包的服务提供者添加到您的Laravel应用程序的config/app.php
文件中
return [ ... 'providers' => [ ... Marchie\LaravelAzureDeploymentUtilities\ServiceProvider::class, ... ] ... ]
完成这些操作后,您可以在composer.json
的post-install-cmd
中使用这些命令
{ ... "scripts": { ... "post-install-cmd": [ "php -r \"copy('%HOME\\site\\.env', '.env');\"", ... "php artisan azure:optimize-classes", ... "php -r \"unlink('.env');\"" ], ... }, ... }
请注意,我们首先将.env
文件复制到存储库中(Laravel需要此文件)。然后,我们运行其他后安装命令。最后,我们删除从存储库中复制的.env
文件。