<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[PHP7框架之Lumen之Hello World,PHP7下的Lumen (5.5.*)框架之Hello World,如何调用Models下面的数据层，触目了解其MVC思想和取数据成功实践于基于其领悟，学下先进。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Fri, 13 Jan 2017 07:20:12 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：听说Lumen起家是以一个叫av的框架，larvael。以Auth2.0起步，Lumen是精简版本，于是想了解一下。发现居然边TM路由就卡住了，Fuck，不光是我老外也有这个问题，都没有解决，主要是一个Nginx的转写问题，这块在Lumen的文档里写的很垃圾，我都不知这些人是怎么写文档的，有用Apache，有Nginx的就不能写细一点么，说一下原理啥的，关键是Nginx配置文件里面的：location /里面的重写。<br/>From:http://blog.csdn.net/wowkk/article/details/52104689<br/><br/>Lumen 5.5.*版本的Lumen，目录：lumen-clear-edition<br/>composer create-project laravel/lumen lumen-clear-edition --prefer-dist&nbsp;&nbsp;&quot;5.5.*&quot;&nbsp;&nbsp;# proc_open,<br/><br/> vi ms/survey/bootstrap/app.php <br/>require __DIR__.&#039;/../config/providers.php&#039;<br/><br/>vi ms/survey/config/providers.php <br/>&lt;?php<br/>$app-&gt;register(Common&#92;Providers&#92;RedisServiceProvider::class);<br/>$app-&gt;register(Common&#92;Providers&#92;MysqlServiceProvider::class);<br/>$app-&gt;register(Common&#92;Providers&#92;KafkaServiceProvider::class);<br/>$app-&gt;register(Common&#92;Providers&#92;EventServiceProvider::class);<br/>$app-&gt;register(Common&#92;Providers&#92;QueueServiceProvider::class);<br/><br/>注册的文件在：<br/>ls ./lumen-clear-edition/common/Providers<br/>EventServiceProvider.php&nbsp;&nbsp;MysqlServiceProvider.php&nbsp;&nbsp;RedisServiceProvider.php<br/><br/>启动方法：<br/>启动方法#服务提供者中注册一个视图 composer 则应该在 boot 方法中完成。此方法会在所有其它的服务提供者被注册后才被调用，意味着你能访问已经被框架注册的所有其它服务：https://lumen.laravel-china.org/docs/5.3/providers，ServiceProvider类，和绑定easy_kafka类：<br/>lumen-clear-edition/common/Providers/KafkaServiceProvider.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
namespace Common&#92;Providers;
use Illuminate&#92;Support&#92;ServiceProvider;

class KafkaServiceProvider extends ServiceProvider&#123;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public function register()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;app-&gt;bind(&#039;easy_kafka&#039;,function()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new &#92;Common&#92;Service&#92;Kafka&#92;Kafka(); #vi lumen-clear-edition/common/Service/Kafka/Kafka.php 绑定的easy_kafka这个类名在这儿： lumen-clear-edition/common/Facades/Kafka.php
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&#125;
</textarea><br/>vi lumen-clear-edition/common/Service/Kafka/Kafka.php&nbsp;&nbsp; #自己写这个类的方法。<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
namespace Common&#92;Service&#92;Kafka;

use Kafka&#92;ProducerConfig;
use Kafka&#92;Producer;
use Illuminate&#92;Support&#92;Facades&#92;Config;

Class Kafka&#123;
</textarea><br/><br/>绑定的easy_kafka在这儿:<br/>lumen-clear-edition/common/Facades/Kafka.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
namespace Common&#92;Facades;
use Illuminate&#92;Support&#92;Facades&#92;Facade;

class Kafka extends Facade&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected static function getFacadeAccessor()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#039;easy_kafka&#039;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&#125;
</textarea><br/><br/>ms/survey/app/Http/Controllers/Api/V1/ActivityController.php&nbsp;&nbsp;#路由@./ms/survey/routes/web.php <br/>$router-&gt;group([&#039;namespace&#039;=&gt;&#039;Api&#92;V1&#039;], function () use ($router) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$router-&gt;post(&#039;activity/form&#039;, [&#039;uses&#039; =&gt; &#039;ActivityController@form&#039;]);<br/><textarea name="code" class="php" rows="15" cols="100">
use App&#92;Helpers&#92;Client&#92;SurveyClient;
public function form(Request $request)&#123;
&nbsp;&nbsp;......
&nbsp;&nbsp;$client = new SurveyClient();
&nbsp;&nbsp;$client-&gt;reportInfo($data);
&#125;
</textarea><br/><br/>ms/survey/app/Helpers/Client/SurveyClient.php&nbsp;&nbsp;<br/><textarea name="code" class="php" rows="15" cols="100">
namespace App&#92;Helpers&#92;Client;
use Common&#92;Facades&#92;Queue as Queue;&nbsp;&nbsp;#这句引入ms/lumen-clear-edition/common/Facades/Queue.php
public function reportInfo($info)&#123;
&nbsp;&nbsp;Queue::load(&#039;mysql&#039;)-&gt;push(&#039;survey_reportInfo&#039;,[&#039;class&#039;=&gt;&#039;survey&#039;,&#039;method&#039;=&gt;&#039;reportInfo&#039;,&#039;dataKey&#039;=&gt;&quot;survey_reportInfo_&#123;$info[&#039;iid&#039;]&#125;_&#123;$info[&#039;uid&#039;]&#125;&quot;],$info);
&#125;
</textarea><br/><br/>类的加载，common文件夹位置：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&quot;autoload&quot;: &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;psr-4&quot;: &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;App&#92;&#92;&quot;: &quot;app/&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Common&#92;&#92;&quot;: &quot;common/&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,<br/>#composer dump-autoload --optimize<br/>Do not run Composer as root/super user! See https://getcomposer.org/root for details<br/>Generating optimized autoload files<br/><br/>生成文件在这儿(挪动一下文件放到新目录，建议重新运行一下这个：composer dump-autoload --optimize，再就是如果有PHP的OPcache得重新启动一下PHP-FPM或关闭掉Opcache，/usr/local/php/etc/php.d/opcache.ini ，opcache.enable=0)：<br/>./lumen-clear-edition/vendor/composer/autoload_psr4.php:&nbsp;&nbsp;&nbsp;&nbsp;&#039;Common&#92;&#92;&#039; =&gt; array($baseDir . &#039;/common&#039;),<br/>More:<br/><textarea name="code" class="php" rows="15" cols="100">
&nbsp;&nbsp;&nbsp;&nbsp;&#039;DeepCopy&#92;&#92;&#039; =&gt; array($vendorDir . &#039;/myclabs/deep-copy/src/DeepCopy&#039;),
&nbsp;&nbsp;&nbsp;&nbsp;&#039;Cron&#92;&#92;&#039; =&gt; array($vendorDir . &#039;/mtdowling/cron-expression/src/Cron&#039;),
&nbsp;&nbsp;&nbsp;&nbsp;&#039;Common&#92;&#92;&#039; =&gt; array($baseDir . &#039;/common&#039;),
&nbsp;&nbsp;&nbsp;&nbsp;&#039;Carbon&#92;&#92;&#039; =&gt; array($vendorDir . &#039;/nesbot/carbon/src/Carbon&#039;),
&nbsp;&nbsp;&nbsp;&nbsp;&#039;Amp&#92;&#92;&#039; =&gt; array($vendorDir . &#039;/amphp/amp/lib&#039;),
</textarea><br/><br/>#find ./ -mtime 0 -type f<br/>./composer.json&nbsp;&nbsp; &lt;== &quot;Common&#92;&#92;&quot;: &quot;common/&quot;<br/>./app/Http/Controllers/Api/V1/ActivityController.php<br/>./app/Helpers/Client/SurveyClient.php<br/>./common/Providers/UserServiceProvider.php<br/>./common/Facades/User.php<br/>./common/Services/User/User.php<br/>./config/providers.php<br/><br/><br/>composer dump-autoload --optimize改动的：<br/>./vendor/autoload.php&nbsp;&nbsp;==》return ComposerAutoloaderInit7d1969d6b0c0a5e119f2b7e0932178e2::getLoader();<br/>./vendor/composer/autoload_psr4.php<br/>./vendor/composer/autoload_static.php<br/>./vendor/composer/autoload_classmap.php<br/>./vendor/composer/autoload_files.php<br/>./vendor/composer/ClassLoader.php<br/>./vendor/composer/autoload_namespaces.php<br/>./vendor/composer/autoload_real.php<br/><br/>访问URL: http://47.93.207.136/activity/survey<br/>最后，这个Provider的类如何使用参考，但写得不是很明白，最新版本的和实际使用并不定一模一样的：http://www.cnblogs.com/cxscode/p/7569856.html<br/><br/><br/><br/>路由：https://lumen.laravel.com/docs/5.4<br/>中文文档：http://laravelacademy.org/laravel-docs-5_4<br/>5.4这个路由，老外写得很简单，这帮人可能是想你去看他的代码吧，有很多人在问：<br/>http://www.thinksaas.cn/ask/question/22000/<br/>class KafkaServiceProvider extends ServiceProvider&#123;<br/> return new &#92;Common&#92;Service&#92;Kafka&#92;Kafka(); #lumen-clear-edition/common/Service/Kafka/Kafka.php<br/>lumen-clear-edition/common/Service/Kafka/Kafka.php 里：<br/><textarea name="code" class="php" rows="15" cols="100">
use Kafka&#92;ProducerConfig;
use Kafka&#92;ProducerConfig;
use Kafka&#92;Producer;
use Illuminate&#92;Support&#92;Facades&#92;Config;
$this-&gt;_config = Config::get(&#039;kafka&#039;); 
</textarea><br/><br/><br/><br/>做微服务：/usr/local/nginx/conf/vhosts/ms.conf<br/><textarea name="code" class="php" rows="15" cols="100">
server&#123;
&nbsp;&nbsp;&nbsp;&nbsp;listen 80 default_server;
&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;&nbsp;10.70.**.142;
&nbsp;&nbsp;&nbsp;&nbsp;access_log&nbsp;&nbsp; /data/logs/nginx/ms-access.log main;
&nbsp;&nbsp;&nbsp;&nbsp;error_log&nbsp;&nbsp;&nbsp;&nbsp;/data/logs/nginx/ms-error.log&nbsp;&nbsp;warn;
&nbsp;&nbsp;&nbsp;&nbsp;root /data/www/ms/;

&nbsp;&nbsp;&nbsp;&nbsp;rewrite ^/(survey)/.*$ /$1/public/index.php last;

&nbsp;&nbsp;&nbsp;&nbsp;location / &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index index.shtml index.html index.htm index.php;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;location ~ .*&#92;.(php&#124;php5)?$ &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include fastcgi_params;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_pass unix:/dev/shm/php-fcgi.sock;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_index index.php;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&#125;
</textarea><br/>server_name&nbsp;&nbsp;10.70.**.142;<br/>root /data/www/ms/;<br/>rewrite ^/(survey)/.*$ /$1/public/index.php last;<br/>http://10.70.33.140/survey/public/index.php<br/>/data/www/ms/survey/public/index.php<br/>路由：<br/>/data/www/ms/survey/routes/web.php<br/><br/>一)$app-&gt;group([&#039;prefix&#039; =&gt; &#039;private&#039;,&#039;namespace&#039;=&gt;&#039;Api&#92;V1&#039;], function () use ($app) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$app-&gt;get(&#039;survey/list&#039;, [&#039;uses&#039; =&gt; &#039;SurveyController@list&#039;]);<br/>http://47.93.207.136/private/survey/list<br/>app/Http/Controllers/Api/V1/SurveyController.php<br/><br/>二）$app-&gt;group([&#039;namespace&#039;=&gt;&#039;Api&#92;V1&#039;], function () use ($app) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$app-&gt;get(&#039;activity/survey&#039;, [&#039;uses&#039; =&gt; &#039;ActivityController@survey&#039;]);<br/>http://47.93.207.136/activity/survey<br/>app/Http/Controllers/Api/V1/ActivityController.php 里有一行：<br/>$client = new SurveyClient();<br/>./app/Helpers/Client/SurveyClient.php:class SurveyClient&#123;<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
namespace App&#92;Helpers&#92;Client;

use Common&#92;Facades&#92;Redis as Redis;&nbsp;&nbsp;&nbsp;&nbsp;#./lumen-clear-edition/common/Facades/Redis.php 
use Common&#92;Facades&#92;DB as DB;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ls ./lumen-clear-edition/common/Facades/DB.php 
use Common&#92;Facades&#92;Queue as Queue; # 在框架目录：ls ./lumen-clear-edition/common/Facades/Queue.php 

class SurveyClient&#123;

</textarea><br/>Lumen (5.5.2) (Laravel Components 5.5.*),路由的写法有点不一样：<br/>$router-&gt;group([&#039;prefix&#039; =&gt; &#039;private&#039;,&#039;namespace&#039;=&gt;&#039;Api&#92;V1&#039;], function () use ($router) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$router-&gt;get(&#039;survey/list&#039;, [&#039;uses&#039; =&gt; &#039;SurveyController@list&#039;]);<br/><br/>$router-&gt;group([&#039;namespace&#039;=&gt;&#039;Api&#92;V1&#039;], function () use ($router) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$router-&gt;get(&#039;activity/survey&#039;, [&#039;uses&#039; =&gt; &#039;ActivityController@survey&#039;]);<br/><br/><br/>调用层级及配置文件的一个情况，二是如何引入框架目录的入口：<br/>./app/Http/Controllers/Api/V1/SurveyController.php:class SurveyController extends Controller&#123;<br/>/**<br/> * 删除互动<br/> */<br/>public function delete(Request $request)&#123;<br/>&nbsp;&nbsp;$iid = intval($request-&gt;input(&#039;iid&#039;));<br/>&nbsp;&nbsp;$res = Survey::deleteSurvey($iid);#调用Models<br/>&nbsp;&nbsp;return $this-&gt;out($res?1:0,$res?&quot;success&quot;:&quot;failed&quot;);<br/>&#125;<br/><br/>调用Models位置：<br/>./app/Models/Survey.php:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static function deleteSurvey($iid)&#123;<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
namespace App&#92;Models;
use Common&#92;Facades&#92;DB as DB;
use Common&#92;Helpers&#92;UnifiedIdHelper;
use App&#92;Helpers&#92;Server&#92;SurveyServer;

class Survey&#123;
/**
 * 删除指定活动
 * @param&nbsp;&nbsp;[type] $iid [description]
 * @return [type]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[description]
 */
public static function deleteSurvey($iid)&#123;
&nbsp;&nbsp;return DB::connection()-&gt;table(&#039;survey&#039;)-&gt;where(&#039;id&#039;,$iid)-&gt;update([&#039;state&#039;=&gt;1]);
&#125;
</textarea><br/>配置文件：<br/>/data/www/ms/survey/config_production/database.php<br/>/data/www/ms/survey/config_production/kafka.php<br/>/data/www/ms/survey/config_production/redis.php<br/><br/>vi /data/htdocs/lumen.levoo.com/bootstrap/app.php&nbsp;&nbsp; #引入框架目录<br/><textarea name="code" class="php" rows="15" cols="100">
require_once __DIR__.&#039;/../vendor/autoload.php&#039;;
//实现App命名空间自动注册
$loader = new &#92;Composer&#92;Autoload&#92;ClassLoader();
$loader-&gt;setPsr4(&#039;App&#92;&#92;&#039;,__DIR__.&#039;/../app/&#039;);
$loader-&gt;register(true);
./bootstrap/app.php:require_once __DIR__.&#039;/../../lumen-clear-edition/vendor/autoload.php&#039;;
</textarea><br/><br/><br/>======================================================================================<br/>Lumen 中可以使用的 Facades，查看源代码，可用清单如下（https://segmentfault.com/a/1190000002902055）：<br/>/survey/bootstrap/app.php:$app-&gt;withFacades();&nbsp;&nbsp;$app-&gt;withFacades();<br/>./lumen-clear-edition/vendor/laravel/lumen-framework/src/Application.php:&nbsp;&nbsp;&nbsp;&nbsp;public function withFacades($aliases = true, $userAliases = [])<br/>./vendor/laravel/lumen-framework/src/Application.php<br/>public function withAliases($userAliases = [])<br/>if (! static::$aliasesRegistered) &#123;<br/>&nbsp;&nbsp;static::$aliasesRegistered = true;<br/><br/>&nbsp;&nbsp;$merged = array_merge($defaults, $userAliases);<br/><br/>&nbsp;&nbsp;foreach ($merged as $original =&gt; $alias) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;class_alias($original, $alias);<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/><br/>==========================================================================================<br/>/usr/local/composer/composer.phar&nbsp;&nbsp;global require &quot;laravel/lumen-installer&quot;<br/>https://lumen.laravel.com/docs/5.4#server-requirements 下面的：<br/>chmod a+x /root/.config/composer/vendor/laravel/lumen-installer/lumen<br/>/root/.config/composer/vendor/bin/lumen new lumen.levoo.com<br/><br/>/data/htdocs/lumen.levoo.com/blog/routes/web.php<br/><br/>你可以将所有路由都定义在routes/web.php中。最基本的 Lumen 路由接收:<br/>http://laravelacademy.org/post/6337.html<br/><br/><br/><br/>$app-&gt;group([&#039;prefix&#039;=&gt;&#039;test&#039;],function($app)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$app-&gt;get(&quot;/index&quot;,[&quot;uses&quot; =&gt; &quot;TestController@index&quot;]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&#125;);<br/><br/><br/>【lumen】基础点记录使用：blog.csdn.net/imdingding/article/details/48679359<br/>app/Http/routes.php中进行路由配置可以使用如下路由组的形式，在路由上lumen和laravel有一些区别<br/>$app-&gt;group([&#039;prefix&#039; =&gt; &#039;scrollnews&#039;,&#039;namespace&#039; =&gt; &#039;App&#92;Http&#92;Controllers&#039;],function($app) &#123;<br/>$app-&gt;get(&#039;/&#039;,&#039;NewsController@showall&#039;);<br/>$app-&gt;get(&#039;/&#123;time&#125;_&#123;newpage&#125;.htm&#039;,&#039;NewsController@showtime&#039;);<br/>$app-&gt;get(&#039;/&#123;newpage&#125;.htm&#039;, &#039;NewsController@show&#039;);<br/><br/>&#125;);<br/><br/><br/>http://123.57.252.183/test/index<br/>hello Lumen (5.4.5) (Laravel Components 5.4.*)<br/>/data/htdocs/lumen.levoo.com/app/Http/Controllers/TestController.php<br/><br/>&lt;?php<br/><br/>namespace App&#92;Http&#92;Controllers;<br/><br/>use App&#92;user;&nbsp;&nbsp; //新增部分<br/>use Laravel&#92;Lumen&#92;Routing&#92;Controller as BaseController;<br/>use Illuminate&#92;Http&#92;Request;<br/><br/>class TestController extends BaseController<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//直接传人sql方式操作数据库<br/>&nbsp;&nbsp;&nbsp;&nbsp;function index(Request $request)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;hello Lumen (5.4.5) (Laravel Components 5.4.*)。&quot;;die;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return User::all();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/><br/>以上实践来源及变通参看了：http://blog.5ibc.net/p/87952.html<br/><br/>PHP message: PHP Fatal error:&nbsp;&nbsp;Uncaught UnexpectedValueException: The stream or file &quot;/data/htdocs/lumen.levoo.com/storage/logs/lumen.log&quot; could not be opened: failed to open stream: Permission denied in /data/htdocs/lumen.levoo.com/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107<br/>mkdir<br/>chmod -R 755 /data/htdocs/lumen.levoo.com/storage<br/>chown -R www /data/htdocs/lumen.levoo.com/storage<br/><br/><br/>Controller类的写法：https://segmentfault.com/q/1010000002727820<br/>/data/htdocs/lumen.levoo.com/blog/app/Http/Controllers/AccountController.php<br/><br/><br/><br/>关于数据库配置文件：<br/>默认情况下, Lumen 使用单一的 .env 文件来配置你的应用, 然而, 你也可以使用 Laravel 风格 的配置方法.<br/>/data/htdocs/lumen.levoo.com/vendor/laravel/lumen-framework/config/database.php<br/>文件夹下对应的配置文件复制到根目录下的 config 文件里面就行.<br/>https://lumen.laravel-china.org/docs/5.3/configuration#configuration-files<br/><br/>Redis:<br/>CACHE_DRIVER=file<br/>SESSION_DRIVER=redis<br/>QUEUE_DRIVER=sync<br/><br/>REDIS_HOST=192.168.1.248<br/>REDIS_PASSWORD=null<br/>REDIS_PORT=6379<br/><br/><br/><br/>今天在部署服务器的时候，使用composer来安装依赖。遇到了如下情况，这块出错好像和Redis配置有关，得在.env里配置好并运行起来。<br/>　　The Process class relies on proc_open, which is not available on your PHP installation.<br/>&nbsp;&nbsp;[ErrorException]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;proc_get_status() has been disabled for security reasons <br/>　　开始的时候，我有些不知所措，于是冷静下来思考一番，然后goolge了一下<br/>解决方法：<br/>　　在php.ini中，找到disable_functions选项，看看后面是否有proc_open函数被禁用了，如果有的话，去掉即可<br/>　　其实如果php的文档熟悉的话，你应该马上就能知道proc_open实际上是一个函数，是php用来和shell交互的函数，一般这种可以直接作用于操作系统的函数是非常不安全的，对于这种不安全的函数，总是要做一些措施来进行保护<br/><br/>php artisan make:migration create_table_cars --create=cars<br/>php artisan make:migration create_table_cars --create=cars<br/>Created Migration: 2017_03_04_160644_create_table_cars<br/>/data/htdocs/lumen.levoo.com/database/migrations/2017_03_04_160644_create_table_cars.php<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public function up()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schema::create(&#039;cars&#039;, function (Blueprint $table) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$table-&gt;increments(&#039;id&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$table-&gt;string(&#039;make&#039;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$table-&gt;string(&#039;model&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$table-&gt;string(&#039;year&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$table-&gt;timestamps();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/><br/><br/>php artisan migrate<br/>Migrated: 2017_03_04_161708_create_table_cars<br/><br/>migrations记录历史 /car 两个表：<br/>id int(10) UNSIGNED<br/>make&nbsp;&nbsp;varchar(255)<br/>model varchar(255)<br/>year varchar(255)<br/>create d_attimestamp<br/><br/><br/>问题实践来源：http://www.cnblogs.com/crisenchou/p/6237781.html<br/>打开方法来自:http://www.codesec.net/view/497671.html?winzoom=1<br/><br/><br/><br/>Model这块和Controll层的配置：<br/>1）Controll层， /data/htdocs/lumen.levoo.com/app/Http/Controllers/TestController.php<br/><br/>&lt;?php<br/><br/>namespace App&#92;Http&#92;Controllers;<br/>use App&#92;Models&#92;Information;<br/>use App&#92;Models&#92;Collection;<br/><br/>//use App&#92;User;&nbsp;&nbsp;&nbsp;&nbsp; //新增部分APP目录下<br/>use App&#92;Models&#92;User; //App&#92;Models&#92;User目录下<br/>use Laravel&#92;Lumen&#92;Routing&#92;Controller as BaseController;<br/>use Illuminate&#92;Http&#92;Request;<br/><br/>class TestController extends BaseController<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//直接传人sql方式操作数据库<br/>&nbsp;&nbsp;&nbsp;&nbsp;function index(Request $request)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$UserModel = new User();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = $User::all(); //这样也成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result2 = $UserModel::all2(); //这样也成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = User::all();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result2 = User::all2();//这个在Model自定义的all2也能被调用输出结果<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_r($result);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;hr&gt;&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_r($result2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/><br/>2）Model层：/data/htdocs/lumen.levoo.com/app/Models/User.php<br/><br/>&lt;?php<br/>//namespace App; //这个得注释掉，容易和App/User.php发生错误引用。<br/>namespace App&#92;Models;<br/><br/>use Illuminate&#92;Database&#92;Eloquent&#92;Model;<br/>//默认操作数据库的users表，需要定制的话请看文档,下面有自己的配置。<br/>class User extends Model<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/**<br/>&nbsp;&nbsp;&nbsp;&nbsp;* The connection name for the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;*<br/>&nbsp;&nbsp;&nbsp;&nbsp;* @var string<br/>&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected $connection = &#039;mysql&#039;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/**<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 表名<br/>&nbsp;&nbsp;&nbsp;&nbsp;*<br/>&nbsp;&nbsp;&nbsp;&nbsp;* @var string<br/>&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected $table = &#039;levoo_sns_user&#039;; //指定操作表名<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected $primaryKey = &quot;id&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//指定主键<br/>&nbsp;&nbsp;&nbsp;&nbsp;public $timestamps = false;<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected $dateFormat = &#039;U&#039;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;static public function all2()&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$User = User::all();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $User;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/><br/>=================MVC模板学习=============================<br/>/data/htdocs/lumen.levoo.com/app/Http/Controllers/TestController.php<br/><br/>&lt;?php<br/><br/>namespace App&#92;Http&#92;Controllers;<br/>use App&#92;Models&#92;Information;<br/>use App&#92;Models&#92;Collection;<br/><br/>//use App&#92;User;&nbsp;&nbsp;&nbsp;&nbsp; //新增部分APP目录下<br/>use App&#92;Models&#92;User; //App&#92;Models&#92;User目录下<br/>use Laravel&#92;Lumen&#92;Routing&#92;Controller as BaseController;<br/>use Illuminate&#92;Http&#92;Request;<br/><br/>class TestController extends BaseController<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//直接传人sql方式操作数据库<br/>&nbsp;&nbsp;&nbsp;&nbsp;function index(Request $request)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$UserModel = new User();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = $User::all(); //这样也成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result2 = $UserModel::all2(); //这样也成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = User::all();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$result2 = User::all2();//这个在Model自定义的all2也能被调用输出结果<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_r($result);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;hr&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_r($result2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//view()-&gt;exists(&#039;user&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return view(&#039;test&#039;, [&#039;name&#039; =&gt; &#039;jackX&#039;,&#039;results&#039; =&gt; $result]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/><br/>vi /data/htdocs/lumen.levoo.com/resources/views/test.blade.php<br/><br/><br/>&lt;!-- 该视图存放 resources/views/greeting.php --&gt;<br/><br/>&lt;html&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;body&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;Hello, &#123;&#123; $name &#125;&#125;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;Hello, &#123;&#123; $name2 or &#039;Default&#039; &#125;&#125;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;Hello, &#123;!! $name !!&#125;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;Array, &#123;&#123; $results&#125;&#125;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;Array, &#123;!! $results !!&#125;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Blade for each:&lt;br&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@foreach ($results as $user)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;id &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;mobile &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;fansmobile &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;followedTime &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@endforeach<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@foreach ($results as $user)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@if ($user-&gt;id == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户Id=1，标识一下:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@endif<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;id &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;mobile &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;fansmobile &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;followedTime &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@endforeach<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;只显示id=1的区块：&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@foreach ($results as $user)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @continue($user-&gt;id == 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;id &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;mobile &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;fansmobile &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &#123;&#123; $user-&gt;followedTime &#125;&#125;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @break($user-&gt;id == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@endforeach<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/body&gt;<br/>&lt;/html&gt;<br/><br/><br/><br/><br/>模板输出：http://123.57.252.183/test/index<br/>Hello, jackX<br/><br/>Hello, Default<br/><br/>Hello, jackX<br/><br/>Array, [&#123;&quot;id&quot;:1,&quot;mobile&quot;:&quot;1881**65108&quot;,&quot;fansmobile&quot;:&quot;18810322234&quot;,&quot;followedTime&quot;:1211212121&#125;,&#123;&quot;id&quot;:2,&quot;mobile&quot;:&quot;1881**65108&quot;,&quot;fansmobile&quot;:&quot;18810322232&quot;,&quot;followedTime&quot;:121212&#125;]<br/><br/>Array, [&#123;&quot;id&quot;:1,&quot;mobile&quot;:&quot;1881**65108&quot;,&quot;fansmobile&quot;:&quot;18810322234&quot;,&quot;followedTime&quot;:1211212121&#125;,&#123;&quot;id&quot;:2,&quot;mobile&quot;:&quot;1881**65108&quot;,&quot;fansmobile&quot;:&quot;18810322232&quot;,&quot;followedTime&quot;:121212&#125;]<br/><br/>Blade for each:<br/>This is user 1<br/>This is user 1881**65108<br/>This is user 18810322234<br/>This is user 1211212121<br/>This is user 2<br/>This is user 1881**65108<br/>This is user 18810322232<br/>This is user 121212<br/>用户Id=1，标识一下:<br/>This is user 1<br/>This is user 1881**65108<br/>This is user 18810322234<br/>This is user 1211212121<br/>This is user 2<br/>This is user 1881**65108<br/>This is user 18810322232<br/>This is user 121212<br/>只显示id=1的区块：<br/><br/>This is user 1<br/>This is user 1881**65108<br/>This is user 18810322234<br/>This is user 1211212121<br/><br/>这个叫Blade的模板引擎解析成PHP的，也就是相当于没有啥大的损耗，如果它的算法还算先进的前提下，位置在：<br/>/data/htdocs/lumen.levoo.com/storage/framework/views/9e3b647aebb6a248d1ae42408e87c3fc7f5bc520.php<br/>为什么这么说呢，如下，我在想为何要搞成这样，PHP裸写不也一样么，像Ci框架啥的，思考思考，这样也算是能模板和程序分离罢：<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;只显示id=1的区块：&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php $__currentLoopData = $results; $__env-&gt;addLoop($__currentLoopData); foreach($__currentLoopData as $user): $__env-&gt;incrementLoopIndices(); $loop = $__env-&gt;getLastLoop(); ?&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?php if($user-&gt;id == 2) continue; ?&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &lt;?php echo e($user-&gt;id); ?&gt;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &lt;?php echo e($user-&gt;mobile); ?&gt;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &lt;?php echo e($user-&gt;fansmobile); ?&gt;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;This is user &lt;?php echo e($user-&gt;followedTime); ?&gt;&lt;/li&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?php if($user-&gt;id == 1) break; ?&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php endforeach; $__env-&gt;popLoop(); $loop = $__env-&gt;getLastLoop(); ?&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/h1&gt;<br/><br/><br/><br/>主要是对这个模板有一个大体理解，和Smarty啥的有一个初步了解，参考自:<br/>http://laravelacademy.org/post/6780.html<br/><br/><br/><br/><br/>======================================================================<br/>Nginx配置文件：<br/><br/>server<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80 default_server;<br/>&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;&nbsp;101.200.189.210 lumen.levoo.com;<br/>&nbsp;&nbsp;&nbsp;&nbsp;index index.html index.htm index.php;<br/>&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;/data/htdocs/lumen.levoo.com/blog/public;<br/>&nbsp;&nbsp;&nbsp;&nbsp;autoindex on;<br/>&nbsp;&nbsp;&nbsp;&nbsp;autoindex_exact_size off;<br/>&nbsp;&nbsp;&nbsp;&nbsp;autoindex_localtime on;<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;location ~ .*&#92;.(php&#124;php5)?$<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_pass unix:/dev/shm/php-fcgi.sock;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_index index.php;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include fastcgi.conf;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;location / &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try_files $uri $uri/ /index.php?$query_string;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#if (!-f $request_filename)&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;rewrite ^/(.+)$ /index.php?s=$1 last;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;access_log /data/logs/nginx/access_lumen_levoo.log;<br/>&#125;<br/><br/><br/><br/>上面location / &#123;里被注释掉的也成，只是优雅度不够，这块好像手册有说明，我当时把 try_files $uri $uri/ /index.php?$query_string;放到location ~ .*&#92;.(php&#124;php5)?$ 里了，发现不对。<br/><br/>http://123.57.252.183/foo<br/>Hello World<br/><br/><br/>老外：<br/>http://stackoverflow.com/questions/32281294/lumen-simple-route-request-doesnt-work<br/>老外也有这个问题：<br/>http://laravel.io/forum/05-08-2014-nginx-laravel-routing-shows-404?page=1<br/><br/>主从数据库配置(多台读库配置):<br/>http://blog.sina.com.cn/s/blog_9bbafb790102win1.html<br/>基于Lumen搭建一个OAUTH2认证的API框架:<br/>http://www.bibihub.com/php/lumen-mobile-api-oauth-2-authentication/<br/><br/>========DB学习=========<br/>基本使用<br/>注意：如果你想要使用DB门面，应该取消bootstrap/app.php文件中$app-&gt;withFacades()调用前的注释<br/>vi bootstrap/app.php<br/><br/>下面这个需要门面：<br/><br/>$app-&gt;get(&#039;/foo&#039;, function () use ($app) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$results = app(&#039;db&#039;)-&gt;select(&quot;SELECT * FROM levoo_sns_user&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;print_r($results);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$results = DB::select(&quot;SELECT * FROM levoo_sns_user&quot;);//这个需要门面<br/>&nbsp;&nbsp;&nbsp;&nbsp;print_r($results);<br/>&nbsp;&nbsp;&nbsp;&nbsp;return &#039;Hello World&#039;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&#125;);<br/><br/>一些报错的日志：SQLSTATE[HY000] [2002] Connection refused<br/>grep: ./survey/config_production/config_production: Too many levels of symbolic links<br/>./survey/config_production/app.php:&nbsp;&nbsp;&nbsp;&nbsp;&#039;lumen_log_path&#039;=&gt;&#039;/data/logs/lumen/survey.log&#039;,&nbsp;&nbsp;//框架日志<br/>grep: ./survey/config/config_production: Too many levels of symbolic links<br/>./survey/config/app.php:&nbsp;&nbsp;&nbsp;&nbsp;&#039;lumen_log_path&#039;=&gt;&#039;/data/logs/lumen/survey.log&#039;,&nbsp;&nbsp;//框架日志<br/>tail -f survey.log <br/>Next Illuminate&#92;Database&#92;QueryException: SQLSTATE[HY000] [2002] Connection refused (SQL: select count(*) as aggregate from `survey` where `type` = 0 and `user` = 271 and `state` = 0) in /data/www/ms/lumen-clear-edition/vendor/illuminate/database/Connection.php:664
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP7框架之Lumen之Hello World,PHP7下的Lumen (5.5.*)框架之Hello World,如何调用Models下面的数据层，触目了解其MVC思想和取数据成功实践于基于其领悟，学下先进。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>