PHP应用程序结构
我开始创建一个网站,很快我就发现我的代码很乱.我用
PHP编程已经有一段时间了,从那以后我学会了OOP.现在,从这个角度来看,在C#或java中创建应用程序非常简单,PHP给我带来了麻烦.
我曾经用一行来编写所有东西(在php中),用最少量的方法,根本没有类.那么方法应该有多少,这些类应该在哪里? 例: 这让我想到了这个问题,我应该创建一个类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! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |