PHP应用程序结构

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP应用程序结构脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
开始创建一个网站,很快我就发现我的代码很乱.我用 PHP编程已经有一段时间了,从那以后我学会了OOP.现在,从这个角度来看,在C#或java中创建应用程序非常简单,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,请注明来意。