PHP程序员应该知道这些PHP知识

本文介绍了PHP开发人员应掌握的关键技术和工具,包括PSR规范、Composer依赖管理器、php-cs-fixer代码风格工具、PsySH交互环境及常用框架如Laravel、Symfony 2等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  互联网时代,软件更新迭代非常之快,作为php开发人员,我们也需要与时俱进,如果有条件的话,尽可能的使用最新版的软件进行开发。比如,你现在就应该用php 5.3以上版本。

   废话不多说,今天和大家分享的就是,php开发人员必须了解的一些知识,如果你已经掌握了,那么恭喜你,你很优秀,如果你还没掌握或了解,那希望本文的分享对你知识的丰富有帮助。

1. PSR

PSR是PHP Standard Recommendation的简写,很多人以为 PSR 只是做一些规范代码风格等无关痛痒的事情,但其实远不止此。

PSR的标准文档都是由php-fig (PHP Framework Interop Group)起草和投票决议的,而投票成员中不乏一些主流框架和扩展的作者包括 Laravel、Symfony、Yii等等。而官方说法,这个组织的目的并不是告诉你你应该怎么做,只是一些主流的框架之间相互协商和约定。相信这些框架和扩展中总会有你用到的。

PSR 目前通过的共有 6 份文档:

0:自动加载(主要是针对 PHP 5.3 以前没有命名空间的版本)

1:编码规范

2:编码风格推荐

3:Log 结果

4:自动加载更细(在出现命名空间后有很大的改变)

7:HTTP 消息接口

据悉,目前在起草(Draft)中的还有 PSR-5(PHPDoc Standard)、PSR-6(Cache)等。5 和 6 没有出现在以上的列表中,是因为还没有投票通过。

      虽然看似和我们平时的php代码编写关系不大,不是所有的标准都需要遵守,但是随着标准的不断更新,这些约定对你肯定是很有裨益的。

2. Composer

Composer 是php中的一种管理工具, 和 Pear、Pecl 都不同,它不仅仅是用于安装扩展,更重要的是定义了一种现代PHP 框架的实现和扩展管理的方法。类似 node.js 的 npm、Python 的 pip ,但又比以上做的更多。

Composer 的核心是实现扩展的标准安装和类的自动加载。通过 packagist.org 这个平台,无数的扩展组件可以被很方便的引入,目前比较知名的 PHP 扩展都可以通过 composer 安装了。而调用仅仅只需要加载一个 autoload.php 的文件即可。

composer 是通过 spl_autoload_register 方法注册一个自动加载方法实现扩展类和文件的加载的,当然这中间 composer 也做了一个优化。

众所周知, PHP 引入文件要通过 include 和 require 实现,这其实写起来并不好看。 PHP 5.3 提供了命名空间,这本来和文件引入也不相干。但是 composer 实现了 PSR-4(在老版本的 PHP 上是 PSR-0),使用 use 时通过调用 spl_autoload_register 实现的方法在调用时加载所需要的类,在写法上类似 Python 的 import,即美观也起到了按需加载、延迟加载的作用。

3. php-cs-fixer

php-cs-fixer主要是用于按照 PSR-1 和 PSR-2 的规范格式化代码,还有一些可选的编码风格是 Symfony 的规范,因为其成员大部分都是来自 Symfony 项目。其具体的使用和配置方法在官方文档上面都有介绍,这里就不在赘述。

      或许有人会觉得代码实现功能最重要,风格并不是那么重要。其实如果想成为一名优秀的php开发工程师,相信能实现既定功能肯定是远远不够的,还要能编写出高质量的代码,何谓高质量的代码,相信这个不用多说,你也清楚。

4. PsySH

PsySH是php中的一个类似于Python 的 IDLE的交互运行环境。这个在Laravel中常见,Laravel 5 的 artisan tinker 的功能就是通过它来实现的。PsySH还常常用于测试一些php 的简单的函数和特性。

5. 一些框架和组件

Laravel

Laravel是现在比较火的一个php开发框架,提到 Laravel 很多人都会立马想到 Ruby on Rails。其实模仿或者抄袭这都不是主要的目的,主要的目的是提供给开发者一个更好的工具。Laravel 好在它有一个不一样的路由控制(不带 Action 后缀或前缀的),有一个好用的 ORM (Eloquent),好用的模板引擎 (Blade) 亦或有一个颜值比较高的文档等等。Larval 的核心实现是一个容器(Container)以及 PHP 的反射类(ReflectionClass)(Yii 2 也是一样)。

Symfony 2

Symfony 2 是php中提供了很多组件的框架。http-kernel 和 http-foundation 在 Laravel 中也有被继承过来直接使用。

CodeIgniter

CodeIgniter 是一个小巧而强大的PHP开发框架。虽然 CI 并没有使用 Composer 组件的方式进行开发,但 3.0 以后的版本也加入了 Composer 的支持(这无非就是多一个 vendor 的目录,引入 autoload.php)的文件。

ORM

ORM 亦或 Active Record 我觉得还是需要的。也许有人认为 PHP 就是一个模板引擎、就应该手写 SQL 。请不要被这些话所困扰。

CodeIgniter 中 Active Record 的实现方式很轻巧,但对于 CI 本身的体量来说,已经是很好用的了。

Laravel 实现的 Eloquent,也可以集成到别的项目中去。Symfony 2 使用的是 Doctrine ,这个项目也值得关注。Yii 2也有自己的一套实现方式。

模板引擎

模板引擎主要是用于做这三件事情:

变量值的输出(echo),

条件判断和循环(if ... else、for、foreach、while)

引入或继承自其他文件

Laravel 实现的 Blade 是一个比较轻量好用的模板引擎。不过目前并不是很好能够引入到其他框架中。

Yii 2 似乎更推荐就用原生的 PHP 去写,不过也提供了支持 Smarty 和 Twig 的扩展。Symfony 2 则采用了 Twig。Twig 和 Symfony 以及上文提到的 php-cs-fixer 都是 SensioLabs 的作品。

Smarty 是一个古老而顽强的模板引擎,其语法相对复杂,变量赋值这些事情都有自己的一套做法。现在的版本中更是使用 Lexer 的方式来解析文件,感觉像是用 PHP 实现了另外一种语言。项目里面还有一些太长的正则表达式、太复杂的实现,使用不好,一件很容易出错的事情。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值