litp/laravel-on-sae

The Laravel Framework For SAE

Installs: 32

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 2

Forks: 23 859

Type:project

v5.2.15 2016-02-12 15:05 UTC

README

Laravel on SAE 是修改过彻底解决了putenv和本地写问题的Laravel,因而它可以在SAE上完美地运行。

一次性彻底解决问题并且适应各个版本的Laravel。

解决putenv被禁用

SAE禁用了putenv函数(其他很多开发平台也同样会禁用putenv),Laravel中使用的phpdotenv模块不能正常使用。

Laravel on SAE 使用sae-phpdotenv替代phpdotenv,然后修改env()函数使其从全局变量$_ENV中获取变量,从而使phpdotenv可以在禁用putenv的平台中正常使用。

本地写被禁止

SAE只允许通过git或者svn上传代码,并且代码在运行过程中对文件系统只有读取权限没有写入权限。

在Laravel 5中需要进行本地写操作的地方有:

  1. 模板编译
  2. 缓存类
  3. 日志处理
  4. Session类
  5. 服务提供者缓存

参考 夏天的风博客

解决的办法是使用SAE提供的Storage的文件Wrapper,把需要本地写的内容存到SAE Storage中。

具体操作为:

  1. 在SAE Storage 中新建一个bucket, 名字为 laravel
  2. 完成。

详细原理和细节请参考 这里

因为在Laravel中这些相关的写操作的目录都被硬编码在Laravel Framwork中,所以不能通过修改配置而只能通过修改laravel framework的源码来实现。 Sae-laravel-framework就是我fork自laravel官方framework并在相应地方做了修改的版本,使用时只需用它替换composer.json中的laravel/laravel即可。

感谢

欢迎提供各种意见及建议。