php一路走来
从2012年就已经接触php了,一直到现在做了已经两三年了,也走过无数的弯路,也通宵熬过无数次夜,看过各种各样的PHP书籍,博客等,做一下总结,全当是对自己过去这一段时间的总结。
php是一个弱类型的语言,所谓若类型的语言并不是之没有类型区分,而是说没有明显的类型定义,php的变量不需要提前定义,只需要一个$符号就可以了,如:$a/$b/$c。 php变量在底层的实现是用c中的共同体(Union)实现的,只是php变量会在操作的时候自动进行类型转换,其次,php的变量采用的是“引用复制”和“写时复制”的机制。
php学到后期会有种不知道该怎么学习的状态,感觉功能的实现都可以实现,没有什么东西可以学习,确实php到后期本身没有什么好学的,此时可以尝试学习一些设计模式,去看一些开源的代码,去尝试着封装一下MVC,尝试着用原生态的PHP语言去实现一些框架中的封装。看完这些之后,可以尝试的去看一下php的源码,也许你此时会发现php的源码还是很难理解的,没关系,一开始都是这样,你可以在这之前去重新学习一下c语言和c++,此时也许你会发现从c到c++其实是一个封装的过程,你也会发现,php源码中用到了大量的结构体(struct),define,typedef,以及大量的一重二重三重指针,你会发现php不是没有什么可以学习,是需要更深层次的挖掘,好了接下来的日子就有事情可以干了,看看PHP的源码,尝试着实现一下php的扩展,放到自己的环境中调用一下。
php后期并不是没有什么可以学习的,而是它本身语言就比较简单,如果只是学习应用层面的东西那就真的没有东西可以学习了。好了大致看完源码之后你会发现php之后会被解析成opcode然后才会被执行,你会知道apc的用法,memcache以及radius的/概念,你会对php有一层更加深入的了解,那下面咱们转向优化方面。
php是一门web开发语言,所以涉及到web就要涉及到优化,怎么说优化呢?网站的瓶颈一般存在与两个地方一个是数据库的瓶颈,一个是php语言的瓶颈,数据库方面:表结构的优化,mysql引擎的选择,索引的添加,纵向分表,横向分表,主从数据库读写分类,集群。php方面咱们可以从优化view层中的css 和 js说起,对css和js进行压缩合并,图片进行处理,图标进行合并等操作。controller层对sql语句进行优化,减少关联查询和子查询的使用,可以把sql语句拆开执行,然后在拼合数据。采用页面静态化处理部分不经常变动的页面,采用memcache/apc/radius作为数据库缓存,缓解数据库压力,采用opcode功能减少php的解析(php5.5之后自带opcode舍去了apc,也可以通过apc实现),选择速度更快的nginx代替apache服务,对服务器做集群等等。当然php本身写法上也有优化技巧比如单引号与双引号的使用,include 和 requice的使用等等,不再叙述。至此你需要学习的东西还有很多。
当感觉学习一门弱类型语言没有什么提高的时候,也许你可以再去学习一下强类型语言,比如说学习java做jsp的时候你会发现jsp中并没有你所理所当然的session,你可以选择用map、hashmap等已有的数据结构来封装session,你可能已经习惯了框架给你提供的功能,但是在这里,你确实需要自己去封装一个数据库的链接读取并把数据返回到一个map中的方法以方便你的开发。
当你感觉学习php没有什么提高的时候,也许你应该去学学linux,其实不需要去看多少书,换上一个linux系统,尝试着去用它。你会发现linux其实要比windows更好用,你可以去搭配一套lnmp/lamp,尝试去写一点shell代码,去自动备份你的数据库,甚至去论循你的php以实现某种功能,你也可以很方便的配置php的xdebug去尝试用断点调试php程序,也可以很方便的去写一些php的扩展,配置memcache等等等等,你可以尝试使用vim去写一些东西,尝试去使用gcc编译c尝试去使用gdb调试程序,尝试去用命令行去干更多的事情,你会发现php其实和linux才是绝配。
这个时候你已经可以熟练的去使用linux了,为什么不尝试自己去实现一个小小的框架,去分析一下常用框架中的技巧,php的面向对象,php的魔法函数,php如何实现多态,以及php在apache中是怎么运行的,nginx为什么比apache性能高,如何在多台服务器下去共享session,如何利用curl去调用一些接口实现开发过程中的某些场合的使用,如何去使用serialize /unserialize去实现一些数据的序列化存储反序列话使用,如何去抓取一些网站的内容,以及如何去改进一些使用习惯。总之,你需要做的还很多,php并不是没有什么可以学的,而是不应该一直停留在代码阶段,应该去学习更深入的东西,要相信当你感觉没有什么东西可以学习的时候有很大一部分是因为你的知识范围还太小,认知层面还太浅。
编程不容易,且行且珍惜,找工作也不容易,所以不管任何时候还是要努力提高自己。
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php一路走来,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

De nombreux développeurs de sites Web sont confrontés au problème de l'intégration de Node.js ou des services Python sous l'architecture de lampe: la lampe existante (Linux Apache MySQL PHP) a besoin d'un site Web ...

Utilisation de Python dans Linux Terminal ...

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...
