php

atom和phpcs

php的编码规范虽然没有像javascript那样集中,有eslint这样的统一标准(见我的这篇文章),但也是有规律可循的。最简单的莫过于直接使用phplint,但是phplint真的实在太弱了,所以目前业界比较流行的是使用PHP CodeSniffer,简称phpcs。phpcs只是一个代码规范工具,它里面的规则,还是要看你到底开发的是什么类型的项目。在代码规范方面,没有

为WordPress开发设置atom环境

WordPress真是一个很奇葩的项目,它的很多编码标准和PSR2是那么的不同,例如一般的php项目都要求以空格代替TAB键,但唯独WordPress要求必须用TAB键本身来作缩进,等等。以至于必须专门为它的开发而设置一套atom环境。在atom中查找并安装project-manager插件,有了它,我们才能单独为WordPress项目创建自己特殊的环境。按照说明文档,在菜

Smfon2.8 源码分析之类的加载

今天来写写Symfony2.8 这个框架的类加载机制版本Symfony 2.8原理在项目启动时,Symfony 通过spl_autoload_register 注册了要使用的类的自动加载处理方法, 在类第一次被使用的时候, 类文件通过该方法被引入, 然后类才得以使用源码分析1.在symfony的入口文件, 我们找到# web/app_dev.php or web/app.p

用正则表达式匹配化学式/化学方程式

对于不是特别复杂的化学式和化学方程式来说,可以用一个或多个正则表达式来匹配。 匹配绝大多数化学式的正则表达式: [A-Z][a-z]?\d*|\((?:[^()]*(?:\(.*\))?[^()]*)+\)\d+ 在线DEMO 当然,对于特别复杂的化学式,比如: (1) K0.85Ca3(Si2.15Al2.85)O11(SO4)0.7(CO3)0.3 (2) (N

使用 Laravel 框架开发是什么样的体验

在程序界的远古时期,大神们手持键盘敲着机器语言跟庞大的机器打着交道,那时候机器语言还没有语义和语法,更没有封装的概念。后来进化到汇编语言,C语言时期,基础的功能特性就已经能满足当时的需求了,比如函数封装使其得于复用,但随着计算机的普及,操作系统的到来,面向过程语言已无法继续满足复杂的需求。历史的变迁促使了高级语言的诞生,到了我们这个阶段,已经是高级语言百花齐放的时代,Jav

面试问题:发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?

以前想过一个类似问题,就是没有每个人最大、最小的得钱数的限制,以前的问题可以很好用随机数解决。 于是这个问题也被以前的思想带坑里了,把突破口完全放在了如何处理每个人的随机数上。 于是在面试时间就没有解决这个问题,直到面试结束自己安静下来,仔细想想,发现思路错了。 我认为正确的思路是:每个人先得6块钱,这样剩下40块钱,之后每次拿出一块钱,随机分配给一个人,如果某个人的钱数达

项目开发的责任感

目前我形成了一个项目告一段落就进行一次总结的习惯,总结会对提高自己的思维层次和能力都非常的有帮助,这篇文章主要基于我现在所在的环境,和所在的公司情景来写的; 关于开发:开发过程,我制作了流程化,从文档入手,做数据结构分析、数据表结构分析、程序结构分析;然后进入开发工作,也就是编码阶段,但少了详细的程序逻辑结构分析,这也就造成了开发中还会存在很多问题,以至于造成了很多隐患,为

Laravel学习笔记之PHP对象遍历(Iterator)

说明:本文章主要讲述PHP的对象遍历(Iterator)知识点。由于Laravel框架中就在集合(Collection)中用到了对象遍历知识点,故记录并学习之。同时,作者会将开发过程中的一些截图和代码黏上去,提高阅读效率。Laravel中在基础集合类Illuminate\Support\Collection、路由类中Illuminate\Routing\RouteColle

Lumen配置文件按需加载出现的坑

问题描述公司一个高并发API需要从Laravel移植到Lumen,由于数据库配置信息是通过远程或者缓存读取后动态配置,所以在中间件时使用到了 Config::set 然而实际运行时发现数据库配置并没有更新。由于是从Laravel移植,因此保留了Facades的写法,Lumen中可以通过以下方法使用Facades:取消 bootstarp/app.php 中 $app->wi