脚本宝典收集整理的这篇文章主要介绍了PHP应用程序结构,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我曾经用一行来编写所有东西(在PHP中),用最少量的@L_360_5@,根本没有类.那么方法应该有多少,这些类应该在哪里?
例:
我有account.PHP,我想更新用户信息.所以在检查有人发送了一些数据之后如果(isset($_ POST [..接下来是什么?我曾经做过
所有的检查,如$email = CheckForRisksOrSomething($_ POST [“email]);然后只需更新MysqL.
这让我想到了这个问题,我应该创建一个类User,它应该包含哪些方法?此外,应该保存此类,假设user.PHP将显示用户的配置文件.
回到课程中应该有多少,我应该在以下文件中使用:
$smth = new Someclass(); if($smth->checkIfSaved()){ $user = new User(); $user->updateUser(/* all the $_POST stuff here? */); } else { $smth->showUserDetailsForm(); }
Someclass应该保存在哪里?
所以,如果有人给我一个如何构造以下功能的例子(在文件,类和可能的方法中).
>用户(注册,登录,编辑帐户..)
>带有评论的图片
>新闻(也有评论)
>行政
这只是一个例子当然,但我不想继续我的烂摊子,然后三天后看看它,只是facepalm并想知道我在那里写了什么.好吧,我今天已经这样做了,这就是我要问的原因.
编辑24.2.2016
虽然这是一个老问题,但正如建议调查一个框架.虽然设置它可能需要一些时间,但它可以提高开发速度,代码很好,干净且更安全.我个人使用Laravel.
Zend’s Coding Standards: 如果您正在查看如何构建,命名等文件,那么我会看看Zend建议如何做这些事情.遵循他们的指导原则,您可以使用这些相同的方法创建与其他人的代码兼容的包.
您要做的是专门为您的类创建一个文件夹.你怎么知道你什么时候需要上新课,包括什么?好问题!
如果您发现自己遇到了相关的信息组,需要一起处理或解决特定问题,您可能应该创建一个可以处理它的新类.
例如,User类可以处理您想要对站点用户进行的任何类型的更改.另一个例子是一个Role类,它可以执行任务(或不执行任务),具体取决于他们是否是管理员.关于Objects和Classes的精彩之处在于你可以创建一个User :: $角色(在User类中名为$role的变量),它是一个Role类.因此,例如,您将在User对象中拥有一个Role对象.从这里开始,您的用户对象现在可以通过执行以下操作来调用角色对象:
class User { PRivate $username; private $role; function __construct($username){ $this->username = $username; } public function setRole($roleTyPE){ swITch($roleType){ case "admin": $this->role = new Admin(); // contained in another class file break; case "staff": $this->role = new Staff(); // contained in another class file break; default: $this->role = new Visitor(); // contained in another class file } // end case } // end setRole } // end Class User $LOGgedInUser = new User("Bubba"); $loggedInUser->setRole("admin"); $loggedInUser->role->deleteMessage();
通常,您需要保持代码的结构和分离,以便每个类只处理它应该具有的信息,而不是做任何应该做的事情.如果你发现一个类做了太多的事情,这意味着你找到了创建另一个类来处理这个新职责的好时机.如何将它们组合在一起通常是“设计模式”所回答的问题.有一本非常好的书,涵盖了使用对象和类进行编程,以及使用设计模式.
查看由Matt Zandstra撰写的“PHP 5对象,模式和实践”一书,由APress出版.这是一本精彩的书,用PHP将你的脚趾浸入OOP!
以上是脚本宝典为你收集整理的PHP应用程序结构全部内容,希望文章能够帮你解决PHP应用程序结构所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。