litp/laravel-on-sae
Laravel on SAE
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中需要进行本地写操作的地方有:
- 模板编译
- 缓存类
- 日志处理
- Session类
- 服务提供者缓存
参考 夏天的风博客
解决的办法是使用SAE提供的Storage的文件Wrapper,把需要本地写的内容存到SAE Storage中。
具体操作为:
- 在SAE Storage 中新建一个bucket, 名字为
laravel - 完成。
详细原理和细节请参考 这里。
因为在Laravel中这些相关的写操作的目录都被硬编码在Laravel Framwork中,所以不能通过修改配置而只能通过修改laravel framework的源码来实现。
Sae-laravel-framework就是我fork自laravel官方framework并在相应地方做了修改的版本,使用时只需用它替换composer.json中的laravel/laravel即可。
感谢
欢迎提供各种意见及建议。
Related Packages
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v5.2.15 | >=5.5.9 | 5.2.* | MIT | |
| v5.2.0 | >=5.5.9 | 5.2.* | MIT | |
| v5.1.11 | >=5.5.9 | 5.1.* | MIT | |
| v5.1.4 | >=5.5.9 | 5.1.* | MIT | |
| v5.1.3 | >=5.5.9 | 5.1.* | MIT | |
| v5.1.1 | >=5.5.9 | 5.1.* | MIT | |
| v5.1.0 | >=5.5.9 | 5.1.* | MIT | |
| v5.0.22 | 5.0.* | MIT | ||
| v5.0.16 | 5.0.* | MIT | ||
| v5.0.1 | 5.0.* | MIT | ||
| v5.0.0 | 5.0.* | MIT | ||
| v4.2.11 | 4.2.* | MIT | ||
| v4.2.0 | 4.2.* | MIT | ||
| v4.1.27 | 4.1.* | MIT | ||
| v4.1.18 | 4.1.* | MIT | ||
| v4.1.0 | 4.1.* | MIT | ||
| v4.0.9 | 4.0.* | MIT | ||
| v4.0.8 | 4.0.* | MIT | ||
| v4.0.7 | 4.0.* | MIT | ||
| v4.0.6 | 4.0.* | |||
| v4.0.5 | 4.0.* | |||
| v4.0.4 | 4.0.* | |||
| v4.0.0 | 4.0.* |
Pre-releases (2)
| Version | Released | Laravel | License |
|---|---|---|---|
| v4.0.0-BETA4 | 4.0.* | ||
| v4.0.0-BETA3 | 4.0.* |