每个PHP程序员应该知道什么?

时间:2008-11-20 19:12:13

标签: php mysql frameworks

我想成为一名PHP / MySQL程序员

我必须知道哪些技术?

像:

  1. 框架
  2. 的IDE
  3. 模板引擎
  4. Ajax和CSS框架
  5. 请告诉我必须知道的最低要求,并告诉我上一个列表中你最喜欢的东西?

    由于

20 个答案:

答案 0 :(得分:34)

首先,没有必须知道学习PHP和MySQL ......你不知道任何事情,你会知道一堆。如果必须知道,那么没有人能够进入PHP和MySQL开发。我个人认为你在不了解它的一切的情况下处于一个微小的优势。它将为您提供一个全新的视角和超越盒子态度的思考:)

就这个线程中面向对象的东西而言,这是真的。但是,正如其他人所说,完全取决于程序员(你)决定如何编写代码。您可以使用面向对象的实践,创建意大利面条代码连接,或者恰好使用一堆函数,或者其他任何东西。无论哪种方式,正如其他人一直在说的,这取决于你:)

IRC频道:

真的不需要这个,但我发现它很有帮助......在这里见到你:)

irc.freenode.net #php

<强>手册

本手册是您的朋友,可能是您在潜入之前应该知道的唯一事情。

http://www.php.net/manual/en/

http://dev.mysql.com/doc/refman/5.0/en/apis-php.html

<强>框架:

确保它是MVC框架:)

http://www.cakephp.org/

http://www.phpmvc.net/

http://www.codeigniter.com/

http://www.symfony.com/

http://www.laravel.com

http://www.yiiframework.com/

<强> IDE:

无论什么最适合你:)

http://www.eclipse.org/

http://www.vim.org/

http://www.zend.com/en/products/studio/

http://php.netbeans.org/

https://www.jetbrains.com/phpstorm/

模板引擎:

PHP是一个很好的模板引擎

模型视图控制器框架有助于此

twig.sensiolabs.org

http://www.smarty.net/

<强>的Ajax:

http://jquery.com/

http://www.mootools.net/

http://developer.yahoo.com/yui/

http://www.prototypejs.org/

http://www.extjs.com/

http://code.google.com/webtoolkit/

https://angularjs.org/

<强> CSS:

http://www.yaml.de/en/home.html

http://code.google.com/p/blueprintcss/

http://developer.yahoo.com/yui/reset/

绝对不是一个详尽的清单,事情会不断变化......但是,这是一个开始:)

玩得开心!

Chrelad

答案 1 :(得分:19)

安全性是每个网络程序员在被允许发布可以在互联网上公开访问的代码之前应该学习的重要主题。

安全问题的例子:

在编写PHP应用程序时,您应该了解并记住更多安全问题。网站http://www.owasp.org包含大量有用的information帮助。

答案 2 :(得分:19)

PHP是我的第一语言,我在10年前的第一份工作中担任办公室初级阶段时学到了这门语言。以下是我的经验:

  • 下载PHP手册,将其打印出来,然后从第一页开始阅读。继续前进直到最后。浏览一下你可能不需要的部分(比如使用KADM5或Hyperwave)但总是阅读介绍,这样你才能知道PHP的功能(这样可以省去你的尝试)重新发明轮子)。 PHP文档打破了我从事过的所有其他语言的文档。
  • 下一步; 设置PHP。手动。不要使用XAMPP或其他任何东西,自己动手。了解环境的设置总是有帮助的。
  • 一开始就不要理会IDE 。了解一种语言意味着要近距离接触。 IDE会模糊一些东西,试图帮助你GetThingsDone,当你知道自己在做什么并了解你的目标环境时,它会很有效,但是当你刚开始时它们只会妨碍并隐藏重要的东西。
  • 一开始也不要打扰框架。再一次,他们会帮助你GetThingsDone,只有当你知道自己在做什么时才会工作。从基础开始,否则你将学习框架而不是PHP。
  • PHP本质上是一种高级模板引擎。不要陷入过度炒作“PHP模板引擎”的陷阱。他们正在做PHP已经做的事情,加倍工作,运行速度是PHP的两倍。坚持使用内联html / php开始。再次,这将帮助您了解PHP是什么,它是如何工作的,以及何时使用它。
  • 与AJAX和CSS一样......它们与PHP无关,而是使用PHP生成的输出(以及使用AJAX输入)。 不要一次性吃太多的盘子。从普通的PHP + HTML开始,手工制作你的CSS。然后,当你开心的时候,混合一点javascript。
  • 您可以使用任何语言做的最好的事情是学习环境您将要从事的工作,因为所有这些语言的编程都相似(相对)相似。它们都有循环,数据结构,输入/输出等,但它们的工作方式略有不同。
  • 不要相信大肆宣传。我现在正从PHP转向Python,我可能只是跳过Django乐队的车来到GetThingsDone,但我知道如果我遇到了一个问题,我不知道从哪里开始修复它。所以我从一开始就采取自己的建议;阅读手册,设置测试系统,解析简单文件,获取输入/输出,将其链接到Web服务器......了解我的新环境的所有部分。

答案 3 :(得分:18)

  

每个PHP程序员应该知道什么?

您需要了解不是PHP的语言。我并不是说你不应该用PHP开发你的网站,它实际上非常好,但你真的需要知道至少一种其他语言来获得一些观点。

为什么呢? PHP破碎,充满了糟糕的设计和错误。你可以在PHP中编写优秀的代码,但是如果你不知道更好的话,你将永远无法发现PHP本身的糟糕设计和失败。

我建议使用python,ruby或C#

PS:如果你认为这不是一个有用的建议,那么无论如何都要降低这个答案,但是如果你因为我觉得PHP被破坏和设计糟糕而感到受到侮辱那么你不要down信使,我只是说实话!

答案 4 :(得分:15)

首先,PHP本身就是一个模板系统

答案 5 :(得分:10)

安全。

就像卢卡斯阿曼所说的那样 - 用PHP编写好的代码取决于你;它并没有让你烦恼。如果你不明白为什么你需要确认注销,或者为什么你不能只是在javascript中验证,或者为什么register_globals是坏的 - 你的应用程序将以某种形式或其他形式易受攻击。

答案 6 :(得分:8)

您需要了解以下内容(我建议按此顺序):

  1. 基本面向对象的原则(如继承,多态和封装)
  2. PHP语言本身。具体来说,PHP 5。
  3. 数据库设计原则,如表格,键,关系,规范化等。
  4. SQL - 结构化(或标准永远不会记住哪个)查询语言。具体了解选择,插入,更新和删除查询的基础知识。
  5. 良好的设计原则和编码实践(您可以在StackOverflow上找到一个帖子),例如划分表示和业务逻辑。
  6. 框架,任何框架 - 这将帮助您了解面向对象设计模式的更高级概念,并允许您遵循鼓励良好设计和编码实践的教程。
  7. 面向对象的设计模式,如MVC,数据库抽象模型等
  8. 高级SQL和其他数据库内容,如触发器,存储过程和其他功能。

答案 7 :(得分:7)

忽略mysql_ *函数。它们不仅没有提供编写安全代码的简单方法,而且如果你尝试的话,它们实际上会不遗余力地使它成为painful and tedious。使用mysqli或PDO代替(现在你没有任何借口 - PHP 4在几个月前就已经过期了。)

答案 8 :(得分:6)

所有好的答案,但有一些重要的缺失:如果你想认真进入PHP,那么你应该意识到有很多PHP程序员在那里懒惰,无能,无知,被误导,不幸得到他们的代码发布给公众。 PHP的历史意味着它支持一些有问题的功能(不仅像register_globals这样的东西,还有像自动初始化这样的小东西),人们仍然使用它们。你不想。

答案 9 :(得分:5)

我想说最重要的是要了解如何使用PHP构建页面的整个过程 - 请求来自客户端(Web浏览器),点击Web服务器,然后传递给PHP,然后生成发回的响应。对此的充分理解将为您奠定基础

  • 为什么在输出开始后无法发送标题
  • 会话和Cookie的工作方式
  • 每个页面应如何以无状态方式构建(即提供请求的任何内容,不记得上次发生的事情,或猜测用户在做什么)
  • HTML,PHP,JavaScript和CSS之间的区别,更重要的是,每个主要用于什么以及每个人的责任在哪里。

一旦你把它弄下来,那么你应该对编写任何应用程序都很满意。但除非你已经把它弄下来,否则你会开始混合我现在看到很多新手之前的事情。

答案 10 :(得分:4)

每个地方的每个值都必须进行适当的编码。 echo $some_variable_that_seems_innocent十分之一是邪恶的。

在构建SQL查询时,在HTML / XML,预备语句或至少htmlspecialchars()中使用addslashes(),在将值插入脚本时json_encode(),在附加URL组件时rawurlencode(),构造shell命令时的escapeshellargs()等。

如果您在XHTML文档中作为脚本一部分的URL中插入文本,则需要对数据进行三次编码。

答案 11 :(得分:3)

虽然这不是一种技术,但我认为你理解这一点非常重要,在使用PHP时,完全由你来编写好的代码。 PHP有能力,但它不鼓励它。您完全负责编写设计良好的代码,如果您愿意,则遵循OO原则。你将无法使用该语言。

答案 12 :(得分:2)

使用一个很棒的IDE(例如Eclipse),可以让你调试并完成一些代码。这样可以节省一些时间。

PHP有很多程序员并且非常受欢迎=很多事情已经为你完成了,在编写一些代码之前,做谷歌搜索总是一个好主意。

如果从头开始,您应该使用一些Framework。这将回答你关于AJax,模板引擎的所有问题......因为大多数问题都附带这些软件包。 以下是关于如何开始选择框架的一些帖子:SO 1SO2,这是a list of PHP框架。

您可以在Windows,Linux或Mac上开发PHP。

答案 13 :(得分:2)

设置网络服务器

要在您的计算机上本地运行PHP和MySQL,您需要安装带有php模块和MySQL数据库服务器的Apache webserver。即。 LAMP网络服务器(Linux Apache MySQL PHP)。

过去,我建议安装Ubuntu。目前,有一些解决方案可以在不使用linux的情况下为您提供一键安装Web服务器。

对于Windows:
http://www.wampserver.com

对于OSX: http://www.mamp.info

让LAMP网络服务器使用w3schools.com教程开始。

答案 14 :(得分:1)

  1. 没有Php框架专家。作为模板使系统变得非常复杂。
  2. 了解业务逻辑需求并思考cons / pro。希望SA认为一切都不是优秀的程序员。
  3. 没有ajax.I处理大量数据,渲染到一个大约4000 k数据的js文件非常糟糕。
  4. 从记事本或VI开始
  5. 学习php大约1到2年后,尝试学习c#或c ++等其他语言来改进你的php应用程序。
  6. Php是上瘾的语言,而不是其他语言。你输入它是有效的。其他语言,你键入它的编译它挂起。 7.对于复杂性应用程序,php对我来说是最好的,而不是其他语言,因为你认为,你写它是有效的。

答案 15 :(得分:1)

我想说一个基本的是HTML。 ;)

答案 16 :(得分:0)

请注意您在网络上找到的代码段。它们通常包含html中的sql,这是不好的做法,以及sql注入等安全漏洞。我见过很少使用预处理语句,这对安全性有好处。

答案 17 :(得分:0)

PHP语言

访问PHP.net并阅读所有文档。当你完成后,你不会知道关于php需要知道的一切,但你会知道在哪里看。

答案 18 :(得分:0)

就个人而言,我发现这本书“Build your own database driven website using PHP and MySQL”非常有帮助。

除此之外,我发现最难习惯使用PHP的一件事是,与我曾经使用的任何其他语言相比,它是多么放松。我的意思是没有类型,语法和标点符号的灵活性。我个人认为这是一件好事,但我也知道它可能会鼓励非常不好的行为。

这是我的另一个提示:尝试使用类似DRY原则的东西 - 也就是说,你会发现自己一遍又一遍地编写相同的小代码(或大代码) - 尽早将它们变成函数正如您在编码过程中所做的那样,以后生活会变得更加轻松。

答案 19 :(得分:0)

您应该知道如何有效地使用至少一个Debugger / IDE。通过逐步完成并观察它运行,您可以从代码中学到很多东西。它既可以更轻松地跟踪错误,又可以提高代码质量。我相信你永远不应该将代码提交给你没有看过的项目。