仅仅需手动添加一行代码就可以让Laravel4执行在SAE (v. 1.0.0)[通俗易懂]

仅仅需手动添加一行代码就可以让Laravel4执行在SAE (v. 1.0.0)

大家好,又见面了,我是全栈君。

Github:https://github.com/chariothy/laravel4-sae (已更新至v1.1.0)

laravel4-sae (v. 1.0.0)

仅仅需手动添加一行代码就可以让Laravel4(~4.2)执行在SAE,并且在本地和在SAE开发无需命令切换,自己主动推断环境并切换配置。

安装

在SAE安装Laravel

在SAE安装Laravel与本地环境安装稍有差别:

  1. 在SAE的“应用管理”中新建一个没有代码的应用。比方叫project-name(这里面仅仅是便于举例,实际上SAE不同意用字符’-‘)。
  2. 用svn将其同步到本地,你会看到本地多出个文件夹project-name;
  3. 打开在命令行窗体。定位到project-name,创建一个laravel应用。输入
composer create-project laravel/laravel=4.1.* project-version --prefer-dist

注意上面命令中的project-version,这应该是个数字,是你还没用过的SAE应用的版本,对新应用来说从1開始。下文中指的站点根文件夹是指project-name/project-version,切记。

SAE的php版本号为5.3,因此最高仅仅能支持到Laravel4.1.x。(Laravel4.2用到了php5.4的trait特性)

漫长的等待后成功安装,然后cmd窗体中定位到project-name/project-version。用composer增加laravel4-sae。输入:

composer require chariothy/laravel4-sae dev-master

它会更新站点根项目下的composer.json,并将laravel4-sae安装到vendor文件夹下。

最后用svn将整个应用上传到SAE,“应用管理”的“代码管理”下就会多出一个版本,在“服务管理”的“KVDB”中开启KVDB服务

怎样使用

好了,要添加的唯一一行代码来了: 打开站点项目根文件夹下app/start/artisan.php。在结尾处加入

Artisan::add(new Chariothy\SaePatch);

保存之后,打开cmd窗体。定位到你的站点项目根文件夹下。输入

php artisan sae

好了,正常情况下会输出一堆Successfully:

- [config]     Successfully created folder 'app/config/sae'
-              Successfully backed up 'app/config/sae/database.php.'
  [db]         Successfully added file 'app/config/sae/database.php.'.
-              Successfully backed up 'app/config/sae/app.php'
  [app]        Successfully added file 'app/config/sae/app.php'.
-              Successfully backed up 'index.sae.php'
  [index]      Successfully added file 'index.sae.php'.
-              Successfully backed up 'config.yaml'
  [yaml]       Successfully added file 'config.yaml'.
-              Successfully backed up 'favicon.ico'
  [favicon]    Successfully added file 'favicon.ico'.
-              Successfully backed up 'bootstrap/start.php'
  [env]        Successfully patched 'detectEnvironment' for sae.
-              Successfully backed up 'bootstrap/start.php'
  [wrap]       Successfully patched 'wrap storage' for sae.
-              Successfully backed up 'app/start/global.php'
  [log]        Successfully patched 'SaeDebugHandler' for sae.
- THE END.

这就是所有。如今你能够用svn上传到SAE(不要忘记先在SAE中开启KVDB服务!

)。 打开首页将看到熟悉的“You have arrived.”

SaePatch都做了啥?

下面对输出的结果做解释:

- [config]     创建了一个文件夹 'app/config/sae',当中是在SAE环境下的设置。
- [db]         SAE环境下的database设置。
- [app]        SAE环境下的app设置。

- [index] 在根文件夹下创建'index.sae.php'。这是为了满足SAE的文件夹结构不像在本地时以public为根文件夹。

- [yaml] 在根文件夹下创建'config.yaml',这是SAE的rewrite规则. - [favicon] 在根文件夹下创建空的'favicon.ico',由于SAE的文件夹结构不像在本地时以public为根文件夹。 - [env] 在'bootstrap/start.php'添加一个'detectEnvironment'来检測SAE环境。

- [wrap] 在'bootstrap/start.php'中为'storage'文件夹加入[SAE wrappers](http://sae.sina.com.cn/doc/php/runtime.html#wrappers "")。 - [log] 在'app/start/global.php'中添加'SaeDebugHandler'来调用SAE的sae_debug()。

–overwrite选项

默认情况下SaePatch会忽略掉已经打过的补丁,只是你能够用–overwrite来覆盖它,能够所有覆盖。也能够选择覆盖。不用操心,都会先备份的。详细參数:

Options:
 --overwrite (-o)      Patch laravel4 even it has been patched before.

                       Option value:
                       config   Add folder app/config/sae.
                       db       Add file app/config/sae/database.php..
                       app      Add file app/config/sae/app.php.
                       index    Add file index.sae.php.
                       yaml     Add file config.yaml.
                       favicon  Add file favicon.ico.
                       env      Add closure for $app->detectEnvironment().
                       wrap     Wrap storage path with SAE wrapper prefix.
                       log      Add SaeDebugHandler for MonoLog.
                       all      overwrite all above.

                       Example1: php artisan sae -o db
                       Example2: php artisan sae -o all

全部选项

php artisan sae -h

能够看到全部选项

特别注意

在SAE环境下,如需切换memcached、storage、kvdb。则config.cache.drive和config.session.drive均保持file不变,仅仅需在config.sae.app(在config/sae/app.php中)中改变wrapper属性就可以。

其实。SAE的storage至少眼下不支持文件append。而memcache又太贵。所以就用默认的kvdb来保存字符挺好的,storage还是适合放些静态图片等等,memcache等着訪问量上去了再换也不迟。

另外。可别忘了在SAE的控制面板中打开kvdb等对应的服务哦~

Have fun!

PS: 为了方便那些composer速度太慢的朋友,我用laravel4-sae打包了一个laravel4.1.27,直接解压出来就能够上传到SAE执行,这里下载

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115945.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Jlink或者stlink用于SWD接口下载程序「建议收藏」

    Jlink或者stlink用于SWD接口下载程序「建议收藏」最近要使用stm32f103c8t6最小系统板,直接ISP串口下载程序太麻烦,就想着使用swd接口来调试。结果:通过SWD接口下载程序成功,但调试失败,还不知原因,会的的人麻烦交流一下。SWD接口:3.3VDIO(数据)CLK(时钟)GND1.首先声明jlink和stlink都有jtag和swd调试功能。jlink接口如下:如图,我使用的就是VCC…

  • android swiperefreshlayout 自定义,SwipeRefreshLayout 的使用详解

    android swiperefreshlayout 自定义,SwipeRefreshLayout 的使用详解SwipeRefreshLayout作为谷歌官方推荐的下拉刷新控件,同时简单而又不失优雅的风格,让许多app都使用了这一控件,今天记录下SwipeRefreshLayout在项目中的实际运用。首先,我们在布局文件中使用:android:id=”@+id/swipeRefreshLayout”android:layout_width=”match_parent”android:layout_heig…

  • 跨网段远程网络唤醒计算机,远程唤醒及跨网段远程唤醒

    跨网段远程网络唤醒计算机,远程唤醒及跨网段远程唤醒远程唤醒:1、除了在BIOS中开启远程唤醒功能外,有些主板要求开启以下功能:ACBackFunction(设置掉电重启后系统的状态)主板的来电唤醒功能比如一插电源线主机就启动看你想怎么设置了使用远程唤醒将“ACBACKFunction”设置为“Full-on”即可关机,开机,先前的状态(原来开时后来电就马上开机,原来关机后来电时还保持关机状态)2、另外,有些网卡还要在其属性中进行另外…

  • MATLAB(2)–MATLAB矩阵的表示

    MATLAB(2)–MATLAB矩阵的表示MATLAB–MATLAB矩阵的表示矩阵的建立冒号表达式linspace结构矩阵单元矩阵最后矩阵的建立利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵的顺序输入各元素,同一行的各元素之间用逗号或者空格分隔,不同的元素之间用分号分隔。利用已建好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成。可以用实部矩阵和虚部矩阵构成复数矩阵。冒号表达式冒号是一个重要的运算符,利用它可以产生行向量。冒号表达式的一般格式为:e1:e2:e3其中,e1为初始值,e2为步长,e3为终

  • 彻底解决鼠标单击变双击问题的方法(图例)「建议收藏」

    彻底解决鼠标单击变双击问题的方法(图例)「建议收藏」两个月前,己“服役”了几年的鼠标出现了故障,单击经常变成双击,这样想用鼠标移动文件的时候就很麻烦,常常要移动几次才能成功。起初我怀疑是系统的问题,但鼠标在别的电脑上使用也出现同样的问题,因此确认鼠标本

  • IDEA2021年3月激活码[在线序列号]

    IDEA2021年3月激活码[在线序列号],https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号