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 相关文章推荐
火车头采集器3.0采集图文教程
Mar 17 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
php教程之phpize使用方法
Feb 12 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
Laravel 5框架学习之表单验证
Apr 08 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
Thinkphp实现站点静态化的方法详解
Mar 21 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 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守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
php正则修正符用法实例详解
2016/12/29 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
2017/04/19 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
简单的JAVA编程面试题
2013/03/19 面试题
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
最热门的自我评价
2013/12/30 职场文书
迎国庆演讲稿
2014/09/15 职场文书
师德师风整改措施
2014/10/24 职场文书
主持人开场白台词
2015/05/29 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
「月刊Action」2022年5月号封面公开
2022/03/21 日漫