是否有一种"正确"的方式来使用PHP?

Tec*_*eer 5 html php symfony1 zend-framework

我一直在学习php,只需插上它即可.

我希望有人能指出我在安全,流程和一般最佳实践方面的正确方向?

谢谢.

编辑 -

我想用一种更好的方式来表达我想要问的是什么.最佳实践是什么:
1.)在处理表单时使用php,get vs post,$ _REQUEST vs $ _GET&$ _POST
2.)动态创建HTML时文件(如下所示)
3.)在与表单创建者相同的文件中登录和身份验证
4.)使用php发送电子邮件

来自#2以上

<?php
echo "<h1> Welcome </h1>";

if ($_SESSION['type'] == "admin")
{
//lots of html in the echo statment
echo "tables and admin interface here";
} else
{
//lots of html in the echo statment
echo "tables and user dashboard here";
}
?>

--VS--


<h1> Welcome </h1>

<?php
if ($_SESSION['type'] == "admin")
{
 ?>
lots of html in the echo statment    
tables and admin interface here 
<?php
} else
{
 ?>
lots of html in the echo statment    
ables and user dashboard here    
<?php
}
?>

--VS-- 

<?php if($_SESSION['username']): ?>

<p>You are logged in as <?=$_SESSION['username']?></p>

<p><a href="?logout=1">Logout</a></p>

<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

ps:感谢所有已经回复的人.我还可以询问框架适合哪里?我参加了OOP课程,但我们并没有熟悉任何框架.

我在Symfony和zend框架上阅读了很多,但我仍然感到困惑.

再次感谢.

Era*_*rin 9

好的编程与语言无关.我建议你开始研究软件开发概念,如面向对象编程,设计模式,关注点分离,重用,封装,测试和重构.从任何一个开始,继续"堵塞"列表,你会变得更好.

特定于PHP - 学习可接受的编码标准,例如PEARZend.在您了解了一些概念之后,请选择一个很好的参考,例如其他答案中提到的顶级框架之一 - Zend Framework,CakePHP,Symfony等.

  • @Billy ONeal,它是一种编程语言.它有"行为"吗?特别是"开箱即用"的行为?该语言支持该范例,但它需要程序员编写代码. (3认同)
  • 关注点分离是编程中的基本概念.学习如何将逻辑与输出生成分开是每种编程语言中的学习步骤之一. (2认同)

Bil*_*eal 5

使用免费提供的框架,例如:

  • Zend框架
  • CakePHP的
  • CodeIgniter(见评论)
  • Kohana(来自@ Alex的回答)

并遵循该框架指定的标准.

  • @TechplexEngineer:这就是为什么我提到了几个框架.PHP的最大问题是**默认情况下**它将实现与网页界面混合在一起.任何框架的第一份工作就是将这些问题分开.哪个特定框架不如使用某种形式的框架重要. (3认同)
  • 除非您想知道如何在PHP4中再次编码,否则不要查看CI:P (2认同)

小智 5

PHP社区从未真正提供任何开发指南或倡导最佳实践.在前框架期间,大多数开发人员编写的典型PHP代码非常业余且杂乱无章 - 请参阅Wordpress源代码.但PHP是一种很好的Web应用程序语言.它是为网络制作的,如果你愿意,你可以用它编写好的专业代码.打击它是时髦的,但忽略了那些东西.

无论如何,就像其他人在这里说的那样,你最好的选择是使用一个框架.作为一个新手,重要的是你选择一个文档齐全的框架,并有一个强大的社区来帮助你克服困难.这是我对主要php框架的概述:

  • Kohana =>一个好的,但在社区薄弱的情况下记录不佳.跳过它.
  • Zend =>最流行的php w/good docs框架,但是另一个表现不佳的人,因为它试图过于企业化而过度使用对象和模式.
  • Cake&Symfony =>是第一代php框架,也有代表性能差的代表.我会跳过这两个.symfony的新版本正在开发中,但尚未准备就绪.
  • Lithium =>由Cake Devs领导的新型框架.使用PHP 5.3并声称速度很快.但是,不是在第1版,而且此时文档也很差=> http://li3.me.

Codeigniter =>流行,快速,优秀的文档和社区.很容易学习.v2.0尚未正式发布,但已准备好投入生产,仅限php5.您可以使用CI站点上的相同文档v1.7.版本非常相似,除了最终2.0滴php 4支持.这是2.0的下载:http://bitbucket.org/ellislab/codeigniter/

YII =>尽管这个名字太愚蠢但真的获得了动力.它是一个快速执行者,拥有GREAT文档和大量功能.一本新书也出版了.社区是一般的,但正在增长.这个框架imo需要很多来自rails.有一个基于Web的代码生成工具,它使用活动记录.http://yiiframework.com/

由于代码生成和活动记录,您可以使用YII更快地构建应用程序但是它比CI更难学习.当你尝试以YII的方式做所有事情的时候,你可能会发现它也会受到影响.CI更灵活 - 为您提供所需的基础,而不是妨碍您.所以现在我推荐codeigniter.

祝好运!

  • 对不起,这对我来说就像一个插头.更重要的是,"忽视那些东西" - 所以你说无视任何一种语言的负面观点?这是一个非常短视的哲学.一个优秀的程序员理解他们的工具和他们的工具限制,并使用正确的工具来完成工作. (2认同)