PHP 7:真实世界的应用开发(中文翻译) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ganymedenil590
V2EX    PHP

PHP 7:真实世界的应用开发(中文翻译)

  •  
  •   ganymedenil590 2020-10-04 11:09:42 +08:00 5342 次点击
    这是一个创建于 1921 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    PHP 7:真实世界的应用开发(中文翻译)

    推荐使用 Gitbook 以获取最佳阅读体验。

    译序

    作为一个使用了 php 多年的程序员,公司项目也经历过 5 到 7 的升级,期间项目也出现过一些因为 php7 功能与 php5 不一致导致的 bug 。我一直在寻找一本能详细介绍 php 7 新特性与功能的书,后来找到了这本,虽然这本书发布到现在已经差不多 4 年了,但是对于想详细了解 php7 的朋友来说里面所讲述的内容我认为还是很有价值的。并且本书作者的一些观点我也非常认同,就想着希望能让更多人看到,趁着十一假期有时间想试着翻译一下本书。本书实际是三本独立的书,但如果单独看这三本都感觉缺点什么,把这三本书合并为一本我感觉就很相辅相成。本书的模块 2 也就是《高性能 php 7 》部分已经由吕毅老师翻译,本人就不再对本模块进行翻译。如果我的翻译能帮助到大家,也是我最大到荣幸。

    前言

    PHP 7 在开源社区掀起了一场风暴,它打破了之前版本的速度记录,也重新引起了人们对它的关注。从最根本的意义上讲,核心工程团队已经对它进行了重大重写,但仍能保持高度的向后兼容性。PHP 是一门开发 Web 应用的好语言。它本质上是一类服务器端脚本语言,也用于通用编程。PHP 7 是最新的版本,提供了主要的向后兼容性突破,并专注于提高性能和速度。这意味着你可以通过多线程网络服务器,用低成本的硬件和服务器维持网站的高流量。

    这条学习之路都涵盖了什么

    模块 1,PHP 7 编程指南,本模块以 PHP 7 为中心,展示了中高级的 PHP 技术。每个示例都是为了解决像您这样的 PHP 开发人员每天面临的实际问题。其中还介绍了只有在 PHP 7 中才有的,新的编写 PHP 代码的方法。此外,我们还讨论了向后兼容性中断的问题,并为您提供了大量指导,告诉您何时何地需要修改 PHP 5 代码,以便在 PHP 7 下运行时产生正确的结果。本模块还包含了最新的 PHP 7.x 特性。在本模块结束时,您将具备为您的网站和企业提供高效应用程序所需的工具和技能。

    模块 2,学习 PHP 7 高性能,该模块是 PHP 7 的快速入门,这将提高您的生产力和编码技能。所涉及的概念将使您作为一个 PHP 程序员,提高你的应用程序的性能标准。我们将向您介绍 PHP 7 中的新特性,然后介绍 PHP 7 中面向对象编程( OOP )的概念。接下来,我们将阐明如何提高 PHP 7 应用程序的性能和数据库性能。通过这个模块,您将能够使用模块中讨论的各种基准测试工具来提高程序的性能。最后,模块讨论了 PHP 编程中的一些最佳实践,以帮助你提高代码的质量。

    模块 3,用 PHP 7 更新旧版应用程序,此模块将向您展示如何通过提取和替换旧版组件,从实践和技术上而不是在使用框架和库之类的工具方面对应用程序进行升级。 我们将采用循序渐进的方法,有条不紊地缓慢前进,从根本上改善您的应用程序。我们将向您展示依赖注入是如何替换新的和全局依赖的。我们还将向您展示如何将表示逻辑改为视图文件,将动作逻辑改为控制器。此外,我们将使您的应用程序始终保持运行状态。在这个过程中,每一个完成的步骤都会让您的代码库以更高的质量完全正常运行。当我们完成后,您将能够像风一样轻而易举地通过您的代码。您的代码将是自动加载、依赖注入、单元测试、层级分离和前端控制。我们将添加到您的应用程序中的大多数非常有限的代码都是针对这个模块的。我们将以程序员的身份提高自己,并提高传统应用程序的质量。

    你在这条学习之路上需要什么

    模块 1

    要成功地实现本模块中介绍的示例,你只需要一台计算机,100MB 的额外磁盘空间,和一个文本或代码编辑器(不是文字处理器!)。第一章将介绍如何设置 PHP 7 开发环境。拥有一个 Web 服务器是可选的,因为 PHP 7 包含一个开发 Web 服务器。不需 Internet 连接,但下载代码(如 PSR-7 接口集)和查看 PHP 7.x 文档可能会需要。

    模块 2

    任何符合运行以下软件最新版本的硬件规格,应该都足以通过本模块。

    • 操作系统:Debian 或 Ubuntu
    • 软件:NGINX 、PHP 7 、MySQL 、PerconaDB 、Redis 、Memcached 、Xdebug 、Apache JMeter 、ApacheBench 、Siege 和 Git

    模块 3

    您需要参考本模块的“第二章,先决条件“来了解本模块所需的基本硬件和软件要求。本章将详细描述这些要求。

    这条路是为谁而设

    如果您是一个有抱负的 Web 开发人员,移动应用开发人员或后端程序员,并且具有 PHP 编程的基本经验并希望开发对性能至关重要的应用程序,那么这个课程是为你准备的。它将使您的 PHP 编程技能更上一层楼。

    支持

    课程的代码包也托管在 github 上 https://GitHub.com/packtpublishing/php-7-be-pro-at-applications-development

    法律申明

    译者纯粹出于学习目的个人兴趣翻译本书,不追求任何经济利益。

    译者保留对此版本译文的署名权,其他权利以原作者和出版社的主张为准。

    本译文只供学习研究参考之用,不得公开传播发行或用于商业用途。有能力阅读英文书籍者请购买正版支持。

    LICENSE

    CC-BY 4.0

    30 条回复    2020-10-09 19:48:33 +08:00
    maigebaoer
        1
    maigebaoer  
       2020-10-04 12:11:41 +08:00 via Android
    php 在国内不行,翻译这还不如翻译 go 相关。我是个 phper,害
    JB18CM
        2
    JB18CM  
       2020-10-04 12:24:26 +08:00
    php 在国外也不行, 逐渐走向没落
    johnsonshu
        3
    johnsonshu  
       2020-10-04 12:27:13 +08:00 via Android
    没落就没落吧。学一门新语言轻松多了
    xiangyuecn
        4
    xiangyuecn  
       2020-10-04 12:48:56 +08:00
    要求$开头,整屏幕$,看着难受,只此一家别无分店。

    -> 操作符操作属性,. 操作符拼接字符串,只此一家别无分店。

    写 php 的大部分也写 js 吧,大脑内上下文切换着实困难,搞不好会宕机猝死。
    back0893
        5
    back0893  
       2020-10-04 13:46:10 +08:00
    看看.
    qqxx520
        6
    qqxx520  
       2020-10-04 13:50:40 +08:00 via iPhone
    感谢
    nomedia
        7
    nomedia  
       2020-10-04 17:32:12 +08:00
    感谢分享
    lijialong1313
        8
    lijialong1313  
       2020-10-04 19:55:54 +08:00
    我觉得$开头还好,好不好看其次起码标识很清晰(特别是无 ide 的时候)

    我可以理解->这个去操作(把变量视为指针),但是理解不了以.去拼接,起码支持点拼接也支持一下加号拼接吧……我记得 php 用加号去加字符串没怎么见过。

    至于上下文切换,我用 laravel 还好……
    icegaze
        9
    icegaze  
       2020-10-04 20:23:27 +08:00 via Android
    .拼接来自于 perl 吧…-_-||
    感觉还好
    dobelee
        10
    dobelee  
       2020-10-04 20:46:46 +08:00 via iPhone
    @xiangyuecn #4 你这个黑得太牵强。$开头的有 bash shell 。->操作符有 c++。.=字符串拼接有 perl 。
    lslqtz
        11
    lslqtz  
       2020-10-04 21:45:06 +08:00
    php 的加号是运算符,点号是拼接符,划分很清晰……
    wangbenjun5
        12
    wangbenjun5  
       2020-10-04 22:05:35 +08:00
    楼上几位说的都还是小问题,PHP 隐藏的问题多了去,根本上说是因为 PHP 压根就不是一个从开始就精心设计的语言,所以导致有很多历史包袱!
    hefish
        13
    hefish  
       2020-10-04 22:28:45 +08:00
    perl 好像也要用$ 的吧?
    noqwerty
        14
    noqwerty  
       2020-10-04 22:34:10 +08:00 via Android
    @hefish 跟 Perl 比起来 PHP 可读性很高了吧记得我刚开始学编程的时候看同学的 Perl 代码跟天书一样
    sagaxu
        15
    sagaxu  
       2020-10-04 22:35:07 +08:00 via Android
    php 的借鉴对象 perl,已经凉透了
    charlie21
        16
    charlie21  
       2020-10-04 22:50:15 +08:00 via iPhone
    凡花大都是五瓣,栀子花却是六瓣。山歌云:“栀子花开六瓣头。” 栀子花粗粗大大,色白,近蒂处微绿,极香,香气简直有点叫人受不了,我的家乡人说是:“碰鼻子香。” 栀子花粗粗大大,又香得掸都掸不开,于是为文雅人不取,以为品格不高。栀子花说:“去你的,我就是要这样香,香得痛痛快快,你们管得着吗!”

    汪曾祺
    charlie21
        17
    charlie21  
       2020-10-04 22:53:23 +08:00 via iPhone
    汪曾祺 夏天,载一九九四年第六期《大家》
    https://m.douban.com/group/topic/113158467/
    lxilu
        18
    lxilu  
       2020-10-04 22:53:35 +08:00 via iPhone
    名叫 PHP,看着难受,只此一家别无分店
    xiangyuecn
        19
    xiangyuecn  
       2020-10-04 23:06:28 +08:00
    @dobelee #10 瞎猜至少:写 php 的 90%会写 js,90%不会写 c++、perl 。对的吧

    -----

    js 写的代码移植到 java 、c#里面需要改写的比较少,移植到 python 里面也相对不会太复杂

    GG668v26Fd55CP5W
        20
    GG668v26Fd55CP5W  
       2020-10-05 07:22:59 +08:00 via iPhone
    又到了 PHP 日常药丸系列。

    据 W3Techs 公布的数据,Wordpress 在前一千万网站的市场份额:
    2018 的 29.9%
    2019 年 33.4%
    现在 38.5%
    而在 2011 年时,占有率才 13.1%

    https://w3techs.com/technologies/details/cm-wordpress

    我似乎闻到了闷声发大财的味道。
    sagaxu
        21
    sagaxu  
       2020-10-05 09:36:48 +08:00 via Android
    @falcon05 38.5%的占有率,却撑不起相应的市场,wp 相关招聘不但极少,薪资也是垫底。
    akagishigeru
        22
    akagishigeru  
       2020-10-05 10:41:01 +08:00 via iPhone
    这种帖子下面都是一群语言争论,数落 php,还有说语言转换的,没这点脑子劝你趁早换行。一天到晚就扒拉这几个点说,都是别人发烂的了。有意思么?
    ericgui
        23
    ericgui  
       2020-10-05 14:49:34 +08:00
    @sagaxu

    +1
    GG668v26Fd55CP5W
        24
    GG668v26Fd55CP5W  
       2020-10-05 15:59:16 +08:00 via iPhone
    @sagaxu 啥撑不起,卖主题卖插件的都赚翻了,甚至做 wp 优化和 seo 都能成为一门产业。还不包括那些 wp 建站的私活和外包公司。
    sagaxu
        25
    sagaxu  
       2020-10-05 17:10:47 +08:00 via Android
    @falcon05 建站?你知道现在是什么行情吗,呵呵
    dvaknheo
        26
    dvaknheo  
       2020-10-05 19:02:51 +08:00
    @falcon05 现在都是要小程序,公众号。wp 这种公司形象页面很少了
    GG668v26Fd55CP5W
        27
    GG668v26Fd55CP5W  
       2020-10-05 19:13:47 +08:00 via iPhone
    @dvaknheo wp 可以做小程序后端,也可以做公众号。因为我都做过
    well775397252
        28
    well775397252  
       2020-10-05 19:51:27 +08:00
    @lijialong1313 + 已经被数组占用了
    zjsxwc
        29
    zjsxwc  
       2020-10-06 11:14:53 +08:00 via Android
    感谢
    lijialong1313
        30
    lijialong1313  
       2020-10-09 19:48:33 +08:00
    @well775397252 突然蒙了,怎么被字符串占用了啊……是+会直接加值,但是.是连接么。那这相对于类似 js 的,不是还算可以的设计么……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5740 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:29 PVG 10:29 LAX 18:29 JFK 21:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86