本文将分享什么是运行Laravel的命令’phpartisanserve’?的详细内容,并且还将对laravel运行原理进行详尽解释,此外,我们还将为大家带来关于laravel-phpartisan命
本文将分享什么是运行Laravel的命令’php artisan serve’?的详细内容,并且还将对laravel运行原理进行详尽解释,此外,我们还将为大家带来关于laravel - php artisan 命令报错,无论输入什么命令、Laravel 4 Artisan 命令行实战、Laravel 4.1 – 使用Phpunit和Mockery测试Artisan命令、Laravel 5.1在运行’php artisan serve’时给出’undefined index:http_host’的相关知识,希望对你有所帮助。
本文目录一览:- 什么是运行Laravel的命令’php artisan serve’?(laravel运行原理)
- laravel - php artisan 命令报错,无论输入什么命令
- Laravel 4 Artisan 命令行实战
- Laravel 4.1 – 使用Phpunit和Mockery测试Artisan命令
- Laravel 5.1在运行’php artisan serve’时给出’undefined index:http_host’
什么是运行Laravel的命令’php artisan serve’?(laravel运行原理)
我似乎不明白为什么我们需要运行一个带有PHP artisan服务的Laravel应用程序而不是用Apache或Nginx运行它.我知道在开发过程中,我们使用artisan来启动站点,在部署到服务器之后,您使用Web服务器来加载站点.
什么是首先在工匠中运行应用程序的用途?
解决方法:
serve命令只是PHP Built-in Webserver的一个快捷方式,PHP开箱即用,所以使用它的目的是尽可能快地开始测试你的应用程序,你只需要安装PHP,Composer和你的应用程序就可以了(当然,如果你不需要任何其他东西).但是如果你已经安装了Nginx,那就没有意义了,只需使用它即可.
在生产中使用Builtin Webserver是不明智的.
laravel - php artisan 命令报错,无论输入什么命令
我按照https://segmentfault.com/a/1190000004598315一步一步做,但是 php arisan命令不能用了
回复内容:
我按照https://segmentfault.com/a/1190000004598315一步一步做,但是 php arisan命令不能用了
有以下几种情况:
立即学习“PHP免费学习笔记(深入)”;
你的服务提供者等框架运行前必加载的代码有问题,执行 optimize 时中断
使用composer update更新的包有问题
composer update时各种情况更新中断, 依赖不完整
composer update前没有运行 artisan clear-compield 导致旧的编译文件没有被清除
optimize 会在 bootstrap/cache/ 文件夹下写入compiled.php 和 service.json 这类map文件,检查一下文件夹权限
不过看你这样子是用windows了,5可以忽略, 4可能性最高
推荐几组解决办法:
清理编译文件的方式
php artisan clear-compiled
// 或者把上一句配置到 composer.json 中的 pre-update-cmd 以防后面又出现问题composer update
使用无脚本的composer更新,并强制覆盖之前的编译内容
composer clearcache
composer update --no-scripts
php artisan optimize --force
暴力一点
如果还有问题, 就直接删掉vendor目录和composer.lock, 使用composer install --no-scripts重新安装,记得最后运行 php artisan optimize --force
执行:composer install 再试试
php artisan route:list
确定设置了 路由 ?
要学习基础的 推荐入门
http://
Laravel 4 Artisan 命令行实战
1. 命令行生成文件
以下命令会在 app/commands
文件夹中生成 TopicMakeExcerptCommand.php
文件
$ php artisan command:make TopicMakeExcerptCommand
Command created successfully.
2. 激活 Artisan 命令行
在 app/start/artisan.php
文件里面, 添加以下
Artisan::add(new TopicMakeExcerptCommand);
3. 加入业务逻辑代码
第一步生成的 TopicMakeExcerptCommand.php
文件, 修改以下区域
<?php
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class TopicMakeExcerptCommand extends Command {
/**
* 1. 这里是命令行调用的名字, 如这里的: `topic:excerpt`,
* 命令行调用的时候就是 `php artisan topic:excerpt`
*
* @var string
*/
protected $name = ''topic:excerpt'';
/**
* 2. 这里填写命令行的描述, 当执行 `php artisan` 时
* 可以看得见.
*
* @var string
*/
protected $description = ''这里修改为命令行的描述'';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* 3. 这里是放要执行的代码, 如在我这个例子里面,
* 生成摘要, 并保持.
*
* @return mixed
*/
public function fire()
{
$topics = Topic::all();
$transfer_count = 0;
foreach ($topics as $topic) {
if (empty($topic->excerpt))
{
$topic->excerpt = Topic::makeExcerpt($topic->body);
$topic->save();
$transfer_count++;
}
}
$this->info("Transfer old data count: " . $transfer_count);
$this->info("It''s Done, have a good day.");
}}?>
4. 命令行调用
先查看下是否注册成功, 直接运行:
php artisan
开始执行命令
执行结果如下图:
$ php artisan topic:excerpt
Laravel 4.1 – 使用Phpunit和Mockery测试Artisan命令
我在Laravel 4.1中编写了我的第一个Artisan命令,想要了解如何测试它.我的命令做了一件事(现在).它基本上从DB中删除指定天数的表条目(Notes).
命令示例:
OneTimeNote:delete --days=25
该命令适用于飞行颜色.但是我先把这个命令写成了学习目的,现在我希望用它来测试.我正在使用PHPUnit和Mockery.
命令代码:
http://pastebin.com/index/dZrxpt8x
正如您所看到的,我正在注入我的Note实现(用于抽象),然后我执行其中一个方法’deleteNotesOlderThan(int $days)’.就像我说的,这一切都很好,花花公子.当我试图测试这个东西时,我的问题开始了.
指挥测试:http://pastebin.com/6UwxGvcN
如果你查看代码,你可以看到我被困在哪里.我如何模拟我的Note方法并生成命令测试?我应该用这个特定的命令测试什么样的东西?
先感谢您
解决方法:
我的建议是按照Laravel给你的例子.
从框架中挑选一个随机的工匠测试,看起来你不需要Symfony的’CommandTester’类,而只是你实例化并去.
从https://github.com/laravel/framework/blob/master/tests/Foundation/FoundationConfigPublishCommandTest.php :(链接主题变得陈旧)
public function testCommandCallsPublisherWithProperPackageName()
{
$command = new Illuminate\Foundation\Console\ConfigPublishCommand($pub = m::mock('Illuminate\Foundation\ConfigPublisher'));
$pub->shouldReceive('publishPackage')->once()->with('foo');
$command->run(new Symfony\Component\Console\Input\ArrayInput(array('package' => 'foo')), new Symfony\Component\Console\Output\NullOutput);
}
因此,您实例化您的命令,传入您的模拟存储库界面,将您的期望添加到模拟,然后调用命令运行,传入’假’输入和输出类.
Laravel 5.1在运行’php artisan serve’时给出’undefined index:http_host’
我使用5.4版学习了laravel 6个月.然后我安装了最新的xampp.但是现在我开始从事基于laravel 5.1的项目.但是,当我想运行该应用程序时,它给了我错误(未定义的索引:http_host)!我如何找到错误的来源?
我该如何解决这个问题?我在网上搜索,但没有发现任何成果.
你能帮我吗?
Storage / log.PHP:
[2017-07-18 21:55:50] local.ERROR: ErrorException: Undefined index: HTTP_HOST in H:\Current\school\school\app\Providers\AppServiceProvider.PHP:40
堆栈跟踪:
#0 H:\Current\school\school\app\Providers\AppServiceProvider.PHP(40): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined index...', 'H:\\Current\\scho...', 40, Array)
#1 [internal function]: Erp\Providers\AppServiceProvider->boot()
#2 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Container\Container.PHP(507): call_user_func_array(Array, Array)
#3 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.PHP(734): Illuminate\Container\Container->call(Array)
#4 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.PHP(717): Illuminate\Foundation\Application->bootProvider(Object(Erp\Providers\AppServiceProvider))
#5 [internal function]: Illuminate\Foundation\Application->Illuminate\Foundation\{closure}(Object(Erp\Providers\AppServiceProvider), 18)
#6 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.PHP(718): array_walk(Array, Object(Closure))
#7 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\BootProviders.PHP(17): Illuminate\Foundation\Application->boot()
#8 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.PHP(203): Illuminate\Foundation\Bootstrap\BootProviders->bootstrap(Object(Illuminate\Foundation\Application))
#9 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.PHP(208): Illuminate\Foundation\Application->bootstrapWith(Array)
#10 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.PHP(105): Illuminate\Foundation\Console\Kernel->bootstrap()
#11 H:\Current\school\school\artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 {main}
AppServiceProvider:
public function boot()
{
if(!Session::get(SITE_ID)){
$subdomain_name = array_shift((explode(".",$_SERVER['HTTP_HOST'])));
if(isset($subdomain_name) && !empty($subdomain_name)){
$domain = $subdomain_name;
}else{
$domain = "school";
}
$sitetoRecollect = DB::table('site_infos')->where('site_alias',$domain)->first();
if(isset($sitetoRecollect->id) && !empty($sitetoRecollect->id) && $sitetoRecollect->id != 0){
Session::put(SITE_ID,$sitetoRecollect->id);
}else{
Session::put(SITE_ID,1);
}
}
}
40线:
$subdomain_name = array_shift((explode(".",$_SERVER['HTTP_HOST'])));
解决方法:
变量$_SERVER [‘HTTP_HOST’]仅适用于浏览器,不适用于PHP-CLI,因此,当您运行命令PHP artisan $_SERVER [‘HTTP_HOST’]将不存在时,可以在此处进行检查Undefined index HTTP_HOST even though it is checked
在这种情况下,可以通过检查$_SERVER [‘HTTP_HOST’]是否存在来修复代码.
if(isset($_SERVER['HTTP_HOST']) && !empty($_SERVER['HTTP_HOST'])){
$gethost = explode(".",$_SERVER['HTTP_HOST']);
$domain = array_shift($gethost);
}else{
$domain = "school";
}
关于线路将解决您的问题,并且会有一些改进.这是固定代码的完整版本,并经过测试.
public function boot()
{
if(!Session::get(SITE_ID)){
$domain = "school";
if(isset($_SERVER['HTTP_HOST']) && !empty($_SERVER['HTTP_HOST'])){
$gethost = explode(".",$_SERVER['HTTP_HOST']);
$domain = array_shift($gethost);
}
$sitetoRecollect = DB::table('site_infos')->where('site_alias', $domain)->first();
if(isset($sitetoRecollect->id) != 0 && !empty($sitetoRecollect->id))
{
Session::put(SITE_ID, $sitetoRecollect->id);
}else{
Session::put(SITE_ID,1);
}
}
}
希望有帮助
今天关于什么是运行Laravel的命令’php artisan serve’?和laravel运行原理的分享就到这里,希望大家有所收获,若想了解更多关于laravel - php artisan 命令报错,无论输入什么命令、Laravel 4 Artisan 命令行实战、Laravel 4.1 – 使用Phpunit和Mockery测试Artisan命令、Laravel 5.1在运行’php artisan serve’时给出’undefined index:http_host’等相关知识,可以在本站进行查询。
本文标签: