“Laravel”的版本间的差异

来自tomtalk
跳转至: 导航搜索
系统架构
Tom讨论 | 贡献
系统服务
第86行: 第86行:
  
 
从测试结果上看,cpus设为2运行效率最高。
 
从测试结果上看,cpus设为2运行效率最高。
 
=系统服务=
 
 
==事件==
 
 
Laravel事件提供了简单的侦听器实现,允许你订阅和监听事件,事件类通常被保存在app/Events目录下,而它们的侦听器被保存在app/Listeners目录下。
 
 
==错误与日志==
 
 
<source lang='php'>
 
//.env
 
APP_DEBUG=true
 
 
// bootstrap/app.php
 
$app->withFacades();
 
 
//引用Log
 
use Log;
 
 
// 8个日志级别
 
Log::emergency($error);
 
Log::alert($error);
 
Log::critical($error);
 
Log::error($error);
 
Log::warning($error);
 
Log::notice($error);
 
Log::info($error);
 
Log::debug($error);
 
</source>
 
 
==测试==
 
 
<source lang='php'>
 
public function testTom()
 
{
 
    $response = $this->call('get', '/userInfo');
 
    $result = json_decode($response->original);
 
 
    $this->assertEquals(
 
        'Tom', $result->name
 
    );
 
}
 
</source>
 
 
==缓存==
 
 
<source lang='php'>
 
use Cache;
 
 
if (Cache::has('key')) {
 
    $coupon_total = Cache::get('key');
 
} else {
 
    $rs = Coupon_api::instance()->total();
 
 
    if ($rs['status']) {
 
        $coupon_total = $rs['data']['total_amount'];
 
    }
 
 
    Cache::put('key', $coupon_total, 5); //5 minutes
 
}
 
</source>
 
 
==session==
 
;session使用
 
<source lang='php'>
 
use Illuminate\Http\Request;
 
 
function blade(Request $request)
 
{
 
    //赋值
 
    session(['name'=> 'Tom']);
 
    $request->session()->put('name', 'Tom');
 
    $request->session()->push('students', 'Tom');
 
 
    //取值
 
    $name = session('name');
 
    $request->session()->get('students');
 
}
 
</source>
 
 
 
;Session store not set on request.
 
<source lang='php'>
 
// Kernel.php添加中间件
 
protected $middleware = [
 
    //...
 
    \Illuminate\Session\Middleware\StartSession::class,
 
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
 
];
 
</source>
 
  
 
=SwaggerLume=
 
=SwaggerLume=

2016年9月18日 (日) 04:02的版本

目录

起步

安装

  1. 下载Laravel一键安装包。
  2. 配置Web服务器虚拟主机。
  3. 将网站根目录配置为laravel5/public。
  4. 能显示Laravel文字,说明安装成功。

Homestead

https://phphub.org/topics/2 Laravel 的 Homestead 开发环境部署

这是两年前的旧文了,不知现在是否还有效。

Mac安装

http://laravel-china.org/docs/5.1/homestead 按开发文档步骤安装,比较顺利。

  1. 安装Virtual Box
  2. 安装Vagrant
  3. 下载本地Lavravl项目代码
  4. 配置Homestead.yaml
  5. vagrant up
  6. vagrant reload --provision
  7. vagrant destroy --force

Windows安装

windows的安装步骤与Mac一样,只是电脑配置差异,有些问题要特别处理。


在BIOS中,开启虚拟化。

安装好Virtual Box、Vagrant,配置好Homestead.yaml后,vagrant up启动到一半不动了,直到超时退出。


在配置文件夹和站点目录

folders的map和to,配置反了,启动时vagrant找不到github_projets目录。

folders:
    - map: d:/github_projects
      to: /home/github_projects
 
sites:
    - map: laravel.example.com
      to: /home/github_projects/LaravelExample/public


运行composer install

正常启动Vagrant后,打开站点首页,报错,指示vendor目录下的文件找不到。


.ssh帐户可以注释掉
authorize: ~/.ssh/id_rsa.pub
 
keys:
    - ~/.ssh/id_rsa


cpus设置

i5CPU,双核四线程,跑了个负载。

ab -c 50 -n 2000 http://laravel.example.com/
 
cpus: 1    75.99     72.95
cpus: 2   111.95    114.54
cpus: 3   111.27    115.85
cpus: 4    92.57     95.45

从测试结果上看,cpus设为2运行效率最高。

SwaggerLume

https://github.com/DarkaOnLine/SwaggerLume

一、安装swagger包

composer require "darkaonline/swagger-lume 1.*"

二、为swagger配置lumen

// bootstrap/app.php
$app->withFacades();
 
// add this line before Register Container Bindings section:
$app->configure('swagger-lume');
 
// add this line in Register Service Providers section:
$app->register(\SwaggerLume\ServiceProvider::class);

三、配置及生成swagger

php artisan swagger-lume:publish-config (config/swagger-lume.php)
php artisan swagger-lume:publish
php artisan swagger-lume:generate

四、指定swagger路由

//config/swagger-lume.php
'routes' => [
    'api' => 'api-docs', // from 'api/documentation'
    'docs' => 'docs',
],

五、设置自动更新文档

//config/swagger-lume.php
 'generate_always' => env('SWAGGER_GENERATE_ALWAYS', true),

如果不设置,要手动执行swagger-lume:generate命令,文档才能看到最新变化。

Lumen

安装

安装composer

https://getcomposer.org/download/ 上下载安装文件。

利用Composer下载Lumen安装器

composer global require "laravel/lumen-installer=~1.0"

安装时包名写错了,留下包痕迹清除不了,把composer卸载,重新安装后,才能用正确的包名安装lumen。

创建Lumen运用程序

通过lumen new命令就能在你指定的目录中创建一个干净的Lumen应用程序骨架了。

lumen new app_name

部署到Web服务器

Lumen 几乎不需要任何配置就能开箱即用。你能立即开始你的编码工作了!

Lumen (5.2.8) (Laravel Components 5.2.*)

base64

杂项

指定302跳转

use Illuminate\Http\RedirectResponse;
return redirect('/userInfo', 302); //默认为301

技术文章收藏

十个Laravel5程序优化技巧

如何查看 Laravel 5 的所有数据库请求