{ "code" : 200, "data" : [], "error": '', "trace": array_slice($e->getTrace(), 0, 10), //debug }
Laravel在做一些admin后台的时候,不想麻烦定义routes的时候,可以采用
Route::any('/{module}/{controller}/{action}', function($module, $controller, $action) {
$controller = \App::make("\\App\\Http\\Controllers\\" . $module . "\\" . $controller . "Controller");
return \App::call([$controller, $action]);
});
参考文章
-
tips
- 如果映射的端口不生效,容器中端口能访问,容器外不能(
telnet $ip $port
),则说明容器里边监听的时候设置了容器的host,改为0.0.0.0
即可。
- 如果映射的端口不生效,容器中端口能访问,容器外不能(
curl https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar -L > /usr/local/bin/phpcs
chmod +x /usr/local/bin/phpcs
see more: https://github.com/squizlabs/PHP_CodeSniffer
vi .git/hooks/pre-commit
版本:V3.1 2014-3-36 (@江南白衣版权所有,转载请保留出处),针对Redis 2.8版。
- <The Little Redis Book> ,最好的入门小册子,可以先于一切文档之前看,免费。
- [作者Antirez的博客] (http://antirez.com/),[Antirez维护的Redis推特](https://twitter.com/redisfeed)。
- [Redis weekly] (http://redisweekly.com/) redis周报。
- [Redis 命令中文版] (http://redis.readthedocs.org/en/latest/), huangz同学的翻译,同时还有Redis官网几篇重要文档的翻译。
- Redis设计与实现 ,又是huangz同学的巨作,深入了解内部实现机制。
- [Redis 2.6源码中文注释版] (https://github.com/huangz1990/annotated_redis_source/) ,继续是huangz同学的大功德。
- 每个函数行数不宜过长,逻辑复用的地方尽量抽象出来,单个函数太长,做的事情会过多,而且会增加维护的时候看代码的上下文切换。单个函数小,功能少,更容易明白。如果一个函数调用了多个函数进行的逻辑,如果逻辑比较复杂,建议写好注释,减少对调用的具体函数的逻辑关注,调用的函数的正确性由被调用的函数去保证。
- 函数的参数建议传递的是普通的值,如 int, string, bool, 对象 等类型,不建议传递 数组。数组作为参数的时候,调用方还要关注里边的key,value等,不够明确类型。当然不做强制要求,综合开发方便和可维护性。
- 业务逻辑不建议直接在controller和console中书写任何的逻辑业务,所有的逻辑业务建议写在Service文件夹中,方便被共用。controller和console中只建议获取输入和输出响应以及对各种service业务逻辑的调用组装等,为了方便service中的函数的公用,不建议在直接吧
$request
这样的作为参数传递给 service中的函数,也就是不要在controller和console之外的地方进行输入参数的获取,而是用参数的方式传递。 - 编写代码的时候要将就可维护性,一定要简单,不要为了逼格复杂化,要方便其他同事也参与维护,除非是觉得很完美的设计,如果是公用的基础库(如composer包,基类)一定要具有可扩展性(如 public、protected、private 关键字的合理使用,一些属性的setter方法的提供等)和尽量具有可测试性
- 涉及到配置的地方,如果是不同的环境(开发环境,测试环境,生产环境)不同的,需要定义在.env文件中,如果不同环境相同但是是涉及到公司相关账户或则服务器账号密码等需要保密的变量也要定义在.env文件中,而且不建议采用其他的方式引入到git版本库中,避免所有有git权限的开发人员都查看到。
- 在composer包和一些基础的中涉及到环境变量和配置等的,一定要通过构造函数的方式进行设置,不要采用在__construct方法中调用获取配置的方式,如果框架用的是依赖注入,在类实例化的时候尽量建议不要采用new关键字的方式去生成对象,因为一旦类要进行修改构造函数的时候,会到处去修改,建议一律采用provider的方式去提供实例化的对象工厂方式生成,在调用的地方注入对应的类或则接口或采用框架容器的方式去(如laravel
crontab 中 没有中断,所以。。
- docker不能-it
# 更新前
php_exe="docker run --rm -v $sync_tmp_dir:/tmp -v $cur_dir:/tmp/code_base -it $php_img php "
# 更新后
php_exe="docker run --rm -v $sync_tmp_dir:/tmp -v $cur_dir:/tmp/code_base $php_img php "
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
var xhr = new XMLHttpRequest(); | |
xhr.open('GET', '/stream'); | |
xhr.seenBytes = 0; | |
xhr.onreadystatechange = function() { | |
if(xhr.readyState == 3) { | |
var newData = xhr.response.substr(xhr.seenBytes); | |
console.log(newData); | |
document.body.innerHTML += "new data: " + newData + "<br />"; | |
xhr.seenBytes = xhr.responseText.length; |
OlderNewer