摘要:日期和时间使用类完成读取设置比较和计算日期与时间。单元测试单元测试是从编写开始,贯穿于整个开发周期的一种用于保证函数类和方法的行为与预期一致的编程方法。是应用的单元测试框架的业界标准,其他几个可选框架是行为驱动开发行为驱动开发有两种方式和。
《php之道》阅读地址:http://wulijun.github.io/php-the-right-way/#code_style_guide
某天在搜藏夹里翻到这个地址,也想不起是什么时候搜藏起来的了。
对于现在的我欠缺的基础很是有用,零零碎碎花了大概有3填时间把这篇文字看了个大概,的确当的起php之道的名字。
这本书对于php相关的东西基本上大都讲到了,许多平时不曾注意的细节也有了一些描述,但毕竟不能算成书,很多细节点并没有展开讲,对于较为系统的了解php的知识还是一个不错的提纲,以此自己展开应当是个不错的选择,稍后我会整理一份简单些的php学习提纲附在下面。
tips
php -S localhost:8000
这个可能很多人都不知道,很好用的说
代码风格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%97
oop
不错的中文教程:http://blog.snsgou.com/post-41.html
函数式编程
此区块暂不明朗,还木有找到合适的教程,后面填坑
魔术方法
官方:http://www.php.net/manual/zh/language.oop5.magic.php 足够了
命名空间
这个我直接黏php之道的
命令行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应用的单元测试框架的业界标准,其他几个可选框架是:
[atoum]
[Enhance PHP]
[PUnit]
[SimpleTest]
行为驱动开发
行为驱动开发(BDD)有两种方式:SpecBDD和StoryBDD。SpecBDD关注代码的技术行为,而StoryBDD关注业务、特性和交互,这两种方式都有对应的PHP框架。
框架大量的PHP开发者使用框架,而不是重复发明轮子来创建自己的Web应用。框架抽象出底层通用的业务逻辑,给使用者了提供简单易用的接口。
PHP常用框架列表
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/20726.html
摘要:先说一下面试时的心态,刚入门的程序员,技术实力不高,又大多不善言谈,面试一旦遇到难题,很容易心态失衡惊慌失措语无伦次,最终丢掉了。其实大可不必,心态坦然,是面试必备的一点。 本书的 GitHub 地址:https://github.com/todayqq/PH... 作为一位程序员,面试过多次,也面试过很多人,最近又在找工作,总结一下面试经验和面试题,希望可以帮到正在找工作的小伙伴们...
摘要:权限中心的依赖声明声明依赖关系检查代码规范声明开发依赖命名空间检查代码规范,执行单元测试。单元测试持续交付一切都如此的完美,没有测试,又如何可以证明这件事情的完美,又如何可以保障交付的质量。 序 权限管理是无线运营系统中的核心模块,通过访问控制策略的配置,来约定人与资源的访问关系。 本文着重讲解如何通过PHP来构建一个灵活、通用、安全的权限管理系统。 关于权限 首先我们来聊聊权限。 权...
摘要:所以作为源数组,你可以将数组的值以引用传递方法传入回调函数,数组的键名直接传入就好了数组连接操作在中合并数组的最佳方式是使用函数。为了实现从数组中删除不在其他数组中的值译注计算差值,使用。 本文首发于 PHP 数组使用之道,转载请注明出处。 这个教程我将通过一些实用的实例和最佳实践的方式列举出 PHP 中常用的数组函数。每个 PHP 工程师都应该掌握它们的使用方法,以及如何通过组合使用...
摘要:框架的版本已经发布,版本最低要求是,将会在今年早些时候推出正式版。阅读的代码,能学到很多东西,代码写的很优雅,用到了很多版本的新特性。 yii框架的v-2.0-alpha版本已经发布,PHP版本最低要求是PHP-5.4,将会在今年早些时候推出正式版。阅读yii2的代码,能学到很多东西,代码写的很优雅,用到了很多php-5.4版本的新特性。 BaseYii这个类,在yii2框架中被称作...
摘要:统一的编码规范编码规范往简单说其实就是三个方面换行空格变量命名放在里面,还有一些附加的地方,比如关键字大小写,语法糖的使用与等的问题。这些都是规范代码的重要手段。推广给你的队友团队项目中,队友的配合对整个代码的规范起着决定性的作用。 1. 统一的编码规范 编码规范往简单说其实就是三个方面: 换行 空格 变量命名 放在 PHP 里面,还有一些附加的地方,比如关键字大小写,语法糖的使用...
阅读 2018·2021-10-09 09:41
阅读 1596·2021-09-28 09:36
阅读 1099·2021-09-26 09:55
阅读 1284·2021-09-10 11:17
阅读 1139·2021-09-02 09:56
阅读 2755·2019-08-30 12:58
阅读 2926·2019-08-29 13:03
阅读 1847·2019-08-26 13:40