PHP框架Laravel的小技巧两则


Posted in PHP onFebruary 10, 2015

用 Laravel 作为 PHP 开发框架很久了,但是有些官方文档中没有覆盖到的地方,每隔一段时间又会忘记。最近做了一点简单的整理,顺便记录下来备忘。

1. Route::controller 路由命名:

用 Route::controller 可以减少路由定制中的大量工作,但是有时候需要对某个特定的路由命名以便使用,但是 Route::controller 方法是批量指定了一个 Controller 中所有方法的路由,这要怎么命名呢?可以用controller($uri, $controller, $names = array()) 中的第三个参数,这是一个数组,数组的 key 是方法,数组的 value 是命名。

// 该函数的签名:

public function controller($uri, $controller, $names = array())

 

// 不命名一般使用:

Route::controller('admin', 'AdminController');

 

// 需要对其中的部分方法命名的话:

Route::controller('admin', 'AdminController', array(

    'getIndex' => 'admin.index',

    'getLogin' => 'admin.login',

    'postLogin' => 'admin.login'

  ));

2. 根据系统变量判断当前运行环境

系统默认的判断是否本地环境的方法是根据在 'local' 数组中指定一组作为本地环境的主机名,比如在办公机、Macbook上都要做开发,你就要把两个主机名都写进去,我觉得这样很麻烦。改成了根据 $_SERVER['LARAVEL_ENV'] 来判断,这样我可以在所有开发机中都定义 'LARAVEL_ENV' 的环境变量,值为 'local',于是在开发机就会自动识别为 'local' 环境,而其它情况则是 'production'。

// 默认的写法是根据主机名判断是否本地环境

$env = $app->detectEnvironment(array(

    'local' => array('homestead');

));

 

// 修改为先判断系统变量是否指定,没有才判断主机名

$env = $app->detectEnvironment(function(){

    $_env = getenv('LARAVEL_ENV') ? getenv('LARAVEL_ENV') : array(

      'local' => array('homestead')

    );

    return $_env;

});

 

// 这实际是去读取 $_SERVER['LARAVEL_ENV'] 的值

// 在 Apache 中,可以用 SetEnv 设置,

// 在 Nginx 中,可以用 fastcgi_param 设置
PHP 相关文章推荐
php Xdebug的安装与使用详解
Jun 20 PHP
yii实现创建验证码实例解析
Jul 31 PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
smarty循环嵌套用法示例分析
Jul 19 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 #PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 #PHP
PHP转盘抽奖接口实例
Feb 09 #PHP
PHP积分兑换接口实例
Feb 09 #PHP
PHP答题类应用接口实例
Feb 09 #PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 #PHP
php构造函数的继承方法
Feb 09 #PHP
You might like
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
PHP内核探索之变量
2015/12/22 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
wxPython实现画图板
2020/08/27 Python
Python各种扩展名区别点整理
2020/02/27 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
秋季校运动会广播稿
2014/02/23 职场文书
如何写股份合作协议书
2014/09/11 职场文书
工作检讨书大全
2015/01/26 职场文书
公司安全管理制度范本
2015/08/05 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
Python标准库之typing的用法(类型标注)
2021/06/02 Python
MySQL 数据库范式化设计理论
2022/04/22 MySQL