如何手动使用 composer, artisan ...(Laravel) php 命令
Posted
技术标签:
【中文标题】如何手动使用 composer, artisan ...(Laravel) php 命令【英文标题】:How to use composer, artisan ...(Laravel) php commands manually 【发布时间】:2015-12-31 06:40:05 【问题描述】:我有一个问题我没有 ssh 访问服务器,所以我不能使用 php artisan、composer 和其他命令。 我可以质疑他们除了修改文件或只是将 php src 文件复制到特定目录之外什么都不做。 为了更好地理解该过程并且由于无法通过 ssh 访问服务器,我正在寻找教程、手册或文章如何手动执行此命令。 例如我需要执行
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
在这种情况下我应该怎么做,找到一些文档描述我应该手动做什么以获得相同的结果会很高兴。
【问题讨论】:
【参考方案1】:您可以从应用程序执行命令行。你可以这样做:
Route::get('execute/my/command', function()
exec("php path/to/your/project/artisan your-command",$resultLines);
Foreach($resultLines as $resultLine)
echo $resultLine;
);
第一个 exec 属性是您的命令,第二个是用于保存结果的变量。 希望对你有帮助
【讨论】:
这是假设在服务器上启用了“exec”。鉴于 OP 没有 SSH 访问权限,这似乎不太可能。【参考方案2】:Laravel 为工匠命令提供了一个方便的外观。
只需在您需要的地方使用Artisan::call('your-command')
。
示例:
Route::get('artisan-command/command', function($command)
Artisan::call($command);
);
您的网址如下所示:http://yourhost.com/artisan-command/db:seed
更适合您的用例:
Route::get('vendor-publish/provider', function($provider)
Artisan::call('vendor:publish', ['provider' => $provider]);
);
网址:http://yourhost.com/vendor-publish/Tymon\JWTAuth\Providers\JWTAuthServiceProvider
参考:Artisan Console in the Laravel Docs
【讨论】:
以及如何运行php composer.phar require laravel/ui
?是否有任何 Composer::call 或仍在使用 Artisan::call ?以上是关于如何手动使用 composer, artisan ...(Laravel) php 命令的主要内容,如果未能解决你的问题,请参考以下文章
无法重新声明类 Composer 导致无法 Php artisan 服务
Laravel - 在部署自定义 Artisan 命令时未部署 composer.json 文件
“php artisan dump-autoload”和“composer dump-autoload”之间有什么区别?
Laravel - 在我运行 composer update CLI artisan 之后出现问题
我无法在我的 docker compose 中进行 mysql php artisan 迁移。错误 SQLSTATE[HY000] [2002]