首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向PHP对象-真实案例

面向PHP对象-真实案例
EN

Stack Overflow用户
提问于 2015-10-28 04:27:22
回答 2查看 148关注 0票数 2

我有一个新的项目(电子商务网站),我决定尝试OOP作为我的新编程技能。我读了很少的书,开始了解使用什么类、方法等。但是,不幸的是,我读过的这些书都没有给我一个线索,我应该把项目的哪些部分作为一个对象来看待。

例如,我知道用户、产品、供应商都是对象,它应该有自己的类。

但是购物车,菜单,仓库,用户评论/评论呢?这些东西也是吗?

如果有一本书或参考资料与真实的案例,而不是以汽车,鸟和帽子为例,请告诉我。非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-28 06:16:14

每个数据库表都应该是一个对象。例如,您正在构建保存便笺的应用程序。对于这个应用程序,首先您需要备注表,它将是主表,并具有引用其他表ID-s的Foreign,如"Type“、"User”、"Status“以及与"Note”相关的任何内容。所以你用表格来创建数据库。

代码语言:javascript
复制
Note -> Id, Title, Description, Type(Foreign Key), Status(Foreign Key), User(Foreign Key).

Type -> Id, TypeName.

Status -> Id, StatusName.

User -> Id, FirstName, LastName, Email, Role

在经历了其他一些框架之后,我发现首先您应该为您的应用程序创建管理员面板,然后从基本CRUD (Create、Read、Update、Delete)操作开始,因为它将帮助您构建可能用于应用程序其他部分的某种基本功能。

现在我们开始:

代码语言:javascript
复制
class Note
{
    private $id, $title, $description, $type, $status, $user;
    private $conObj;

    public Note()
    {

    }
}

class Type 
{
    private $id, $typeName, $conObj;

    public Type()
    {
    }
}

class Status
{
    private $id, $statusName, $conObj;

    public Status()
    {
    }
}

class User
{
    private $id, $firstName, $lastName, $email, $role, $conObj;

    public User()
    {
    }
}

每个类都可以具有插入、更新、selectAll、selectUnique等函数。因此,您还创建了连接类。

代码语言:javascript
复制
class Connection
{
    private $hostName, $userName, $password, $dbName;
    private $conObj;

    public Connection()
    {

    }

    public Connect()
    {
        $this->conObj = new mysqli($this->hostName, $this->userName, $this->password, $this->dbName)
    } 


}

之后,由您决定如何将"Connection“类实例连接到其他类实例。

票数 3
EN

Stack Overflow用户

发布于 2015-10-28 04:53:10

OOP的棘手之处在于,没有一种方法可以做到这一点。就像建造房子一样,你可以选择你喜欢的任何类型的建筑。什么是对象取决于您正在构建什么,以及您希望每个部分具有多大的灵活性。当您正在构建一个项目时,您必须决定哪些部分是重点。然后,它们将成为对象(即应用程序的主域)。

有时对象会变大,它们需要被分离成另一个类,而是相互通信。关于软件开发的一件事是,你在前进的过程中学习,在过程中犯错误。这就是你如何学会识别设计决策的陷阱。太多的前期设计决策也没有那么有效,但是如果你知道这个项目会持续一段时间,那么太少也会造成很大的伤害。这完全取决于一个项目的规模。

我说,继续,并尝试编码已经!当你编码和重构你自己的代码时,你会惊讶于你学到了多少。别忘了边走边问更多的问题。玩得开心!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33382908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档