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 相关文章推荐
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
php 404错误页面实现代码
Jun 22 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
PHPEXCEL 使用小记
Jan 06 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
SESSION存放在数据库用法实例
Aug 08 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 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清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
python实现文本去重且不打乱原本顺序
2016/01/26 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
python使用epoll实现服务端的方法
2018/10/16 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
Python实现汇率转换操作
2020/05/03 Python
python网络编程之五子棋游戏
2020/05/14 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
办公室前台的岗位职责
2013/12/20 职场文书
质检部职责
2013/12/28 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
求职推荐信范文
2015/03/27 职场文书
现场施工员岗位职责
2015/04/11 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
初婚初育证明范本
2015/06/18 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
详解OpenCV曝光融合
2022/04/29 Python
利用Java连接Hadoop进行编程
2022/06/28 Java/Android