位置: 编程技术 - 正文

Laravel 5.1 on SAE环境开发教程【附项目demo源码】

编辑:rootadmin

推荐整理分享Laravel 5.1 on SAE环境开发教程【附项目demo源码】,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了Laravel 5.1 on SAE环境开发方法。分享给大家供大家参考,具体如下:

Laravel-简洁、优雅的PHP开发框架,为 WEB 艺术家创造的 PHP 框架,如今正式移植到SAE环境。

由于Laravel 5.1相比于Laravel 4有很多的改动,不仅以目录结构更加清晰,而且功能也更丰富。但是Laravel官方还是没有原生支持SAE环境(估计永远不会支持),所以我就做了一个移植版本,可以很优雅的切换本地和SAE环境。

由于SAE的特殊性,那么这几个核心问题就必须要解决

#1 putenv()函数禁用#2 模板编译#3 缓存类#4 日志处理#5 Session类#6 服务提供者缓存

#1 putenv()函数禁用

Laravel 5.1使用了这个putenv()函数来向当前的环境中动态添加变量,但是很遗憾的是SAE的PHPRuntime禁用了该函数,所以只能使用折中的方法来实现。当初本来想Hook掉该实现,后来觉得没必要,这个函数在Laravel 5.1中主要是为了使用.env配置文件来统一团队的配置。所以我是直接禁用了该功能,在vendor/vlucas/phpdotenv/src/Dotenv.php的行左右,直接注释掉该函数,然后把所有的配置信息都写到config文件夹的相应配置文件中。虽然解决了该函数被禁用的问题,但是实现的不够优雅,希望有大神可以给出更加优雅的实现。

#2 模板编译

该问题主要还是因为SAE的本地环境写入被禁止,所以我使用了Wrapper来把编译后的模板文件写入到Storage。本来是打算写到KVDB中,但是会出现一些奇奇怪怪问题,原因不明。

在configview.php文件中修改:

注意要在相应的Storage中建立compiled文件夹。

#3 缓存类

Laravel 5.1没有直接提供SAE可用的Memcache缓存驱动,这个解决比较简单,直接写一个服务提供者注册到app.php即可,然后在configcache.php中注册,具体实现看项目源码

Laravel 5.1 on SAE环境开发教程【附项目demo源码】

#4 日志处理

这也是一个比较棘手的问题,由于Laravel 5.1的日志处理已经不是和4一样使用服务提供者,而且直接注入到启动器中,这就使得我们只能覆写原生ConfigureLogging启动类,而官方也没有给出如何覆写和在哪里覆写,所以我这边的解决方案是判断当前环境为SAE后直接重写Http内核中的一个启动器属性,核心代码:

这样还不行,还必须重写日志的部分实现

#5 Session类

Laravel5.1的session依旧是本地写的问题,参考了Laravel4的移植,使用了memcache作为session的实现,具体可以结合缓存部分来处理

#6 服务提供者缓存

在应用程序的启动过程中,laravel会在bootstrap/cache/services.json生成服务提供者的缓存,为了加快下次访问的速度,依旧是本地写的问题,解决方案很简单,使用Storage的Wrapper即可以上这些问题解决后,差不多就算成功了。最后修改下bootstrapapp.php来实现本地与SAE环境的优雅切换,主要是判断环境然后生成SAE专有应用实例和注入相应的Http内核。

这里解释下为什么要在bootstrapapp.php中来定义是否为SAE环境,原因很明确了,就是要注入相应的应用程序实例和Http实例,然后再这里也定义一下Storage

然后就是configapp.php的相关配置,根据环境判断来注入相应的服务提供者

最后再说说SAE专有应用程序实例和Http实例与原生的差别,主要还是本地写的问题。原生的会在应用程序启动时候生成路由、配置、服务提供者、模板编译的相关文件,以此来提升加载速度。但是到了SAE就不行了,所以重写了Application类的部分与路径相关的方法,来把这些文件生成到Storage中,而Http专有内核则是处理启动器中的日志类。具体代码就不贴出来,可以看看项目。

再给一个SAE可以使用的rewrite

总结

整个移植过程还算是很顺利,得益于Laravel的拓展性与SAE的便利.不过在对于putenv()函数和日志处理的解决方法上,还是实现的不够优雅,希望能有人给出更有优雅的实现方案。然后其他的SAE服务比如分词、邮件、队列等,则可以使用服务提供者自动加载,这个就不多说了。

项目github地址:

Laravel中间件实现原理详解 本文实例讲述了Laravel的中间件实现原理。分享给大家供大家参考,具体如下:#1什么是中间件?对于一个Web应用来说,在一个请求真正处理前,我们可

PhpStorm terminal无法输入命令的解决方法 在使用PhpStorm时,点击下面的terminal时,发现怎么输入都不显示,于是一查才发现是phpstorm与win系统不兼容的问题,只要设置一下控制台(使用老版本就ok

Laravel实现自定义错误输出内容的方法 本文实例讲述了Laravel实现自定义错误输出内容的方法。分享给大家供大家参考,具体如下:这里分析一下laravel对于提交的数据进行验证,怎么自定义错

标签: Laravel 5.1 on SAE环境开发教程【附项目demo源码】

本文链接地址:https://www.jiuchutong.com/biancheng/301927.html 转载请保留说明!

上一篇:ThinkPHP的SAE开发相关注意事项详解(thinkphp6.0完全开发手册)

下一篇:Laravel中间件实现原理详解(laravel中间件是什么意思)

  • 小规模企业需要申报吗
  • 个人所得税申报操作流程
  • 税法的分类都有什么
  • 材料入库的会计分录材料采购损失
  • 应收账款余额百分比法会计分录
  • 银行入息是入几个月的
  • 分公司没有业务季报怎么处理
  • 开了红字信息表当月怎么做账
  • 利润表中的其他综合收益
  • 进料加工手册核销是什么意思
  • 多付银行承兑退回的会计分录怎么写?
  • 多缴纳的税款不退税怎么入账
  • 采购折扣怎么结转成本?
  • 付款单中未全付款怎么办
  • 中国银行结算包括哪些内容?怎么做会计分录?
  • 分包挂靠认定依据
  • 减少实收资本会引起资产和所有者权益发生变化吗
  • 基本养老保险覆盖人数
  • 购买材料再进在建工程的账务处理
  • 建筑行业成本预算和施工方案哪个更有含金量
  • 建筑业总产值的统计执法检查内容
  • 企业所得税申报流程
  • 即征即退申报表如何填写
  • 固定资产 出售
  • 工业园租金大概是多少
  • npscheck.exe - npscheck是什么进程 有什么用
  • PHP:pg_parameter_status()的用法_PostgreSQL函数
  • 最小的固态硬盘多大尺寸
  • 装修未办理施工许可证怎么处罚
  • 购销合同印花税计算方法
  • 购买原材料产生的费用
  • html5简单吗
  • web自动化测试项目
  • 2023前端面试题目
  • Node 下 Http Streaming 的跨浏览器实现
  • 公司从银行提取现金4000元备作零星开支
  • 可供出售金融资产和交易性金融资产
  • 托盘账务处理
  • 小规模纳税人采购需要发票吗
  • 装修的工程款账务处理
  • PHP魔术方法的作用
  • 融资租赁的固定资产
  • 工会经费为0是不用申报的?
  • 公司吸收合并流程详细步骤
  • 免税农产品发票怎么做账
  • 撰写广告
  • 专票抵扣进项税额怎么填申报表呢
  • 金税四期能监控到公户吗
  • 没有抄税会导致什么情况
  • 扫码开票怎么弄
  • 定期定额户超过9万如何交个税
  • 现在勾选认证是可以下月初认证?
  • 预付款项属于什么会计要素
  • 事业单位外出参观培训心得
  • mysql解压版
  • sql2005 create file遇到操作系统错误5拒绝访问 错误1802
  • ubuntu git not found
  • centos6.5mini安装教程
  • ctrmon.exe
  • rhel6.5安装教程
  • Win7 64位操作系统怎么使用DVD刻录光驱复制软件
  • win7系统安装教程不用u盘
  • slee401.exe - slee401是什么进程 有什么用
  • win7 64位系统使用360安全浏览器在网页中播放视频出现花屏的解决方法
  • win8怎样设置将文件保存到d盘
  • linux安装.sh
  • win7ie8和ie11
  • python标准库很庞大,它可以帮助处理各种工作,包括
  • shell脚本用法
  • JavaScript 2048 游戏实例代码(简单易懂)
  • Android Studio 1.1.0 配置androidannotations框架
  • 炉石传说架是什么意思
  • 基于JavaScript的图书管理系统
  • nodejs使用视频教程
  • jquery过滤选择器按照过滤规则分类包括?
  • 基于python的应用
  • 浅谈如何加强基层党组织建设
  • 江苏税务社保缴纳查询缴费记录
  • 大连市网上税务申报平台
  • 调研基本情况介绍范文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设