月度归档:2015年02月

[译]Laravel 5.0 之事件调度程序 (定时任务)

本文译自 Matt Stauffer系列文章.


关于 Laravel 5.0 的事件调度程序(可以理解为定时任务),Eric Barnes 有一篇很长的文章。我这篇文章则会尽量简短:

Laravel 5.0 新增了一个框架内置的 cron 风格的令人难以置信的调度程序(与 Indatus 的 Dispatcher 类似)。只要在服务器上设置一个每分钟调用 artisan schedule:run 的 cron job, 一切就准备就绪了。 继续阅读

[译]Laravel 5.0 之运行环境及环境变量

本文译自 Matt Stauffer系列文章.


如果你关注我的博客有段时间了,那你应该曾经见过我在 Laravel 环境检测问题上的各种尝试,特别使用环境变量进行检测这方面。例子

感谢 Laravel 5, 它极大地简化了环境检测环节。在 4.x 版的时候,你要创建多个基于运行环境名称的环境配置文件(比如 .env.php, .env.local.php 等)。老实说,我从来用过这个功能。但我觉得理论上你应该会把所有环境配置文件提交到代码库。但由于我们从来不提交任何环境配置文件,所以这种区分环境的手段毫无用处,而且它还会造成环境配置文件的延迟加载,因为只有检测到运行于什么环境之后,它才能进行相应的配置文件加载。 继续阅读

[译]Laravel 5.0 之 Middleware (Filter-Style)

本文译自 Matt Stauffer系列文章.


如果你有阅读我之前的 Laravel 5.0 系列文章,你可能已经注意到路由过滤器(route filters)的变化:它们先是移到了单独的目录和类结构,然后就莫名其妙地消失了。你可能还留意到在原本应该是路由过滤器的地方,变成了对 Middleware 的引用。

实际上给 Laravel 应用添加自定义的 Middleware 在以前的版本中就有了。 Chris Fidao 的 HTTP Middleware in Laravel 4.1 对 middleware 做了全面的介绍,包括 middleware 在 Laravel 4.1 版本中的工作机制。 继续阅读

[译]Laravel 5.0 之路由缓存

本文译自 Matt Stauffer系列文章.


在 PHP 代码中进行性能优化并非总是我们优先考虑的问题. 但是我们对后端代码的性能优化–特别是在一些很复杂的操作上–可以对网站的请求时间产生几十甚至几百毫秒的影响. 看上去不算很多, 但是几百毫秒的差异对于你的应用的用户感知速度来说可能意味着巨大的差异(链接可能需要扶墙访问). 继续阅读

[译]Laravel 5.0 之目录结构与命名空间

本文译自 Matt Stauffer系列文章.


Laravel 的主版本号之所以从 4 升到 5. 一个很重要的原因是目录结构的改变. 这个改变实际上不只是文件组织方式的变化, 而是思想上的一个重大转变.

新的目录结构能够更好地反映 Laravel 开发者的工作方式或者说推荐的工作方式. 不仅如此, 新的目录结构也能够减少有关 “最佳实践” 这个话题的争论. 此外, 从新的目录结构也能更好地理解 Laravel 的工作机制. 继续阅读

[译]Laravel 5.0 之 ValidatesWhenResolved

本文译自 Matt Stauffer系列文章.


在创建 FormRequest 的时候, Taylor(译注: Laravel 框架的作者) 还编写了一个接口 (ValidatesWhenResolved) 和一个 trait (ValidatesWhenResolvedTrait), 都是用于对控制器方法进行校验的. 这种校验会在IOC 容器对该方法的依赖项解析成功时调用.

老实说, 我目前还没有写出一个在 FormRequests 类之外的应用场景来使用这两个东西的实例. 但我还是想写一篇文档来介绍它们, 希望有比我更聪明的人来找出它们在实际项目中可能的应用场景. 继续阅读

[译]Laravel 5.0 之 表单验证类 (Form Requests)

本文译自 Matt Stauffer系列文章.


让人头痛的表单验证

只要你曾经在使用 Laravel 框架的过程中试图找到有关用户输入验证的最佳实践, 你就应该了解这是一个争论最多并且几乎没有达成共识的话题. 我们可以在控制器中进行验证, 可以在单独的一个服务层进行验证, 可以在模型中进行验证, 当然还可以在 Javascript 中进行验证 (这只是一个玩笑, 谁都知道不能只依赖于客户端的验证). 但是, 哪一种做法才是最佳的呢?

Laravel 5.0 新引入的表单请求 (Form Request) 特性提供了集规范性 (差不多就是 “最佳实践” 的意思) 和便捷性 (这是比之前任何一种选择都更强大也更便捷的方式) 于一体的, 在 Laravel 中执行数据检查和验证的新手段.

说明: 本文中使用新的 view() 辅助方法代替了旧版本中的 View::make(). 继续阅读