我开始创建一个网站,很快我就发现我的代码很乱。我用PHP编程已经有一段时间了,从那以后我学会了OOP。现在,从这个角度来看,在C#或java中创建应用程序非常简单,但PHP给我带来了麻烦。
我曾经用一行来编写所有内容(在php中),只需要少量的方法,根本没有类。 那么方法应该有多少,这些类应该在哪里?
示例:
我有account.php,我想更新用户信息。那么在检查有人发送了一些数据后if(isset($_POST[..
下一步是什么?我曾经只是做
所有检查如$email=CheckForRisksOrSomething($_POST["email]);
然后只更新mysql。
这让我想到了一个问题,我应该创建一个类用户 以及它应该包含哪些方法?此
回到课程应该有多少,我应该在像以下文件中使用:
$smth = new Someclass();
if($smth->checkIfSaved()){
$user = new User();
$user->updateUser(/* all the $_POST stuff here? */);
} else {
$smth->showUserDetailsForm();
}
Someclass应该保存在哪里?
所以如果有人给我一个如何构建以下功能的例子(在文件,类和可能的方法中)。
这只是一个例子当然,但我不想继续我的烂摊子,然后三天后再看看它,只是看着脸,并想知道我在那里写了什么。好吧,我今天已经这样做了,这就是我要问的原因。
编辑 24.2.2016
虽然这是一个老问题,但正如建议调查一个框架。虽然设置它可能需要一些时间,但它可以提高开发速度,代码很好,干净且更安全。我个人使用Laravel。
答案 0 :(得分:3)
答案 1 :(得分:1)
很难告诉你应该怎么做。那里有许多不同的偏好。查看Zend,Kohana,CodeIgniter等框架。
当我使用OOP设计创建较小的应用程序时,我通常会尝试遵循以下层次结构:
index.php
中加入bootstrap.php
。bootstrap.php
包含所有类和配置。classes
目录,您可以在其中将核心功能保存在core
文件夹中。classes
目录中创建两个文件夹controllers
和models
。templates
,其中所有的html文件都进入(然后使用Smarty模板引擎进行渲染)。这是一种非常简化的方法,但可以引导您朝着正确的方向前进。对于用户,图片等的要求,创建一个包含单个用户的所有数据的模型。
class UserModel() {
public $name;
public $email;
}
然后是一个可以修改此模型的控制器:
class UserController() {
public function update($user) {
...
}
}
答案 2 :(得分:0)
我的回答可能不会直接回答你的问题,但可能会给你带来很多好处。
使用真正的框架。不要从头开始构建带代码的网站。它将为您节省大量时间,并将迫使您使用良好的代码分离实践,真正优秀和干净的项目结构,但同样,它将节省您的时间!对于你决定在那里实施的许多事情,将有一个现成的解决方案,你做的常见事情(作为验证电子邮件地址)将以正确的方式完成。
我会选择一个MVC PHP框架,在过去使用了很多CakePHP,Zend,Kohana和其他很少的人之后,我建议你和Yii一起去。非常小的学习曲线,漂亮的文档,漂亮的大型活跃社区,您将能够在非常短的时间内移植任何已有的东西。
我非常肯定你所描述的项目框架会减少你的时间至少2次,同时你将解决上面提到的所有问题。我从经验中知道这一点,很久以前从头开始开发项目。
答案 3 :(得分:0)