Kun Che 发布的文章

在 SAE 上运行 Laravel 4

本文由游子团队成员、DiliCMS 作者 chekun (a.k.a. @jeongee) 首发于 SAE 官方论坛,现经由游子团队整理校对并重新发布。


When Laravel meets SAE

相信大家或多或少已经了解过目前横扫 PHP 社区的 Laravel 框架了。在2012年以前,我主要使用 CodeIgniter 作为日常开发的核心框架;在了解过 Laravel 3 诸多耳目一新的特性和架构后,我立马被它的优雅、灵活所吸引,自此毅然成为 Laravel 开发者阵营中的一员。关于 Laravel 的各种高大上特性,我在这里不做详谈,感兴趣的可以到 Laravel 官网查看了解。

Sina App Engine(简称SAE)是新浪推出的 PaaS 公有云计算平台,目前 SAE 平台支持 PHP、Python 和 Java 编程语言。既然 SAE 支持 PHP 编程语言,那么,它理论上自然应该支持 Laravel。然而 SAE 云基础架构的一些限制导致我们无法直接、自由的使用原生 Laravel 框架:

  • 本地文件读写:Laravel 通过读写本地文件的方式实现缓存和临时文件(如 manifest)的存取;而 SAE 不支持直接读写本地文件
  • 缓存类:Laravel 没有直接提供 SAE 可直接使用的缓存类。
  • Session类:Laravel 默认的 Session 机制并非采用 PHP 原生 Session 实现;而 SAE 则默认支持 PHP 原生 Session。具体来说:SAE 通过 session_start() 开启一个 Session 会话;而采用了 Symfony Session 的 Laravel,自然继承了其 Session 类会和 SAE 自动 session_start() 产生兼容性问题的特性。
  • 模版引擎:Laravel Blade 模板引擎编译后的临时文件会存放于本地,故依然存在本地文件直接读写的 SAE 兼容性问题。

幸运的是,PHP5 的新特性和 Laravel 强大的扩展能力使得我们可以轻松解决上述问题。本文所附带的开源项目,可以让您的 Laravel 项目优雅的运行于 SAE 平台上。

- 阅读剩余部分 -