《php之道》阅读地址:http://wulijun.github.io/php-the-right-way/#code_style_guidephp
某天在搜藏夹里翻到这个地址,也想不起是何时搜藏起来的了。
对于如今的我欠缺的基础非常有用,零零碎碎花了大概有3填时间把这篇文字看了个大概,的确当的起php之道的名字。
这本书对于php相关的东西基本上大都讲到了,许多平时未曾注意的细节也有了一些描述,但毕竟不能算成书,不少细节点并无展开讲,对于较为系统的了解php的知识仍是一个不错的提纲,以此本身展开应当是个不错的选择,稍后我会整理一份简单些的php学习提纲附在下面。html
tipsmysql
php -S localhost:8000
这个可能不少人都不知道,很好用的说linux
psr0 psr1 psr2 psr3 psr4 都须要时常温习
E文:http://www.php-fig.org/psr/
中文:https://github.com/hfcorriez/fig-standards/tree/zh_CN/%E6%8E%A5%E5%8F%97git
oop
不错的中文教程:http://blog.snsgou.com/post-41.htmlgithub
函数式编程
此区块暂不明朗,还木有找到合适的教程,后面填坑web
魔术方法
官方:http://www.php.net/manual/zh/language.oop5.magic.php 足够了sql
命名空间
这个我直接黏php之道的shell
PHP社区的众多开发者已经开发了大量的代码。这意味着一个函数库中的PHP代码可能使用了另一个库中相同的类名,若是它们共享一个命名空间,则会产生冲突致使异常。
命名空间解决了这个问题。如PHP手册里描述的那样,命名空间相似于操做系统中的目录,两个同名文件能够共存于不一样的目录。同理,同名的PHP类能够在不一样的PHP命名空间下共存,就这么简单。
于是把代码放在本身的命名空间下就显得很是必要,这样其余人就能够放心的使用这些代码,而无需担忧与其余函数库的命名冲突。
[PSR-0] 里提供了命名空间的推荐使用方式, 它试图提供一个标准的文件、类和命名空间的使用惯例,从而让代码作到即插即用。
2013年12月,PHP-FIG发布了新的自动加载标准:[PSR-4],未来可能会替换旧的PSR-0标准。PSR-4要求PHP5.3版本以上,而目前不少项目用的都是PHP5.2, 所以当前两个标准均可用,可是对于新应用或者包的话,应优先考虑PSR-4.
psr0和psr4的介绍见 代码风格 中的连接数据库
php -i
这是查看php信息的命令,相似phpinfo的做用,配合grep使用能够快速查看你所须要的配置
php -a
php shell 能够这么理解吧
xdebug 配合 ide 是目前开发的主要调试手段,没事耍两下
phpstorm + xdebug 配置教程 http://micate.me/phpstorm-xdebug.note
composer 缺点就是国内网络常常连不上,线上慎重使用
找到composer还有国内的源 https://pkg.phpcomposer.com/
pear 话说,我不了解。。。没事看下,应该会有些帮助
这块认真看下,有些发现平时写的实在是。。。
PHP使用DateTime类完成读取、设置、比较和计算日期与时间。虽然PHP中有不少日期和时间处理相关的函数,可是DateTime类提供了 完善的面向对象接口完成各项常见操做,并且还能处理时区,这里不做深刻介绍。
这块入门书籍 《大话设计模式》,我目前正在阅读中看着不错,很生动,后面最好再去看下《gof》,这个我还没看,完成以后再作更新。
这里主要是讲mysql,其余的之后用到再整理
关于mysql,暂时木有好的教程,待更新
mysql目前来讲主要使用的驱动是pdo,php-mysql这个原生的驱动在5.4之后已经被标记为不推荐使用了
话说网上没有找到比较好的教程,下面这个暂且用用,有好的换掉
http://www.phpv.net/html/1579.html
异常是大部分流行语言的标准特性,可是PHP开发者却不过重视。其余语言如 Ruby极度倚赖异常,在任何错误发生的时候,如HTTP请求失败 、DB查询错误,甚至图片资源未找到,都会抛出一个异常,以及时提示那里发生了一个错误。
PHP则对此很宽松,如调用file_get_contents()
失败,只是返回FALSE
并提示一个warning信息而已。不少老的PHP框架,如 CodeIgniter会返回false,而后在本身的日志里记录一个消息,开发者须要使用如$this->upload->get_error()
的方式来查看发生了什么 错误。这么作须要你本身检查是否有错误,并须要根据不一样类调用不一样的方法来获取错误消息,而不能让错误明显的显示出来。
目前大部分的框架都会有一些本身的异常处理方式,使用的时候应该先把框架的这个机制给搞明白。
web的安全问题一般是至关重要的,较为常见的有:sql注入、xss攻击等等,下面是较为全面的列表
http://os.51cto.com/art/201204/328938.htm
测试
测试驱动开发
测试驱动开发(TDD)是以很是短的开发周期,不断进行迭代的软件开发流程:首先开发者针对改进或新功能编写失败的自动化测试用例,而后编写代码使测试用例经过, 最后重构代码,让代码知足可接受的标准。Kent Beck,该技术的建立者或者说从新发现者,在2003年声明TDD鼓励简单的设计和提振信心。
单元测试
单元测试是从编写开始,贯穿于整个开发周期的一种用于保证函数、类和方法的行为与预期一致的编程方法。经过检查各个函数和方法的输入和输出值,你能够保证它们 内部逻辑已经正确执行;经过依赖注入、编写mock类和stubs,你能够验证依赖是否已经正确处理,提升测试覆盖率。
[PHPUnit]是PHP应用的单元测试框架的业界标准,其余几个可选框架是:
行为驱动开发(BDD)有两种方式:SpecBDD和StoryBDD。SpecBDD关注代码的技术行为,而StoryBDD关注业务、特性和交互,这两种方式都有对应的PHP框架。
大量的PHP开发者使用框架,而不是重复发明轮子来建立本身的Web应用。框架抽象出底层通用的业务逻辑,给使用者了提供简单易用的接口。