在使用面向对象的PHP设计ERP系统时需要遵循哪些步骤?
I have been assigned to design an ERP system for a small enterprise with Object oriented PHP.I have already designed the database for that.
Previously I have designed some web applications but never used Object oriented programming.
I have the following doubts.
I know that the documentation of a project matters a lot, but do not know the procedure to do that.
Not sure which architecture to follow like MVC or 3-tier etc.
Significance of UML in the project and how to design it from the database or the classes and objects.
How to map the database to classes and objects.
I have already designed the database for the project ,but not sure how to proceed further.
我被指派为面向对象PHP的小型企业设计ERP系统。我已经设计了数据库 对于那个。 p>
以前我设计了一些Web应用程序但从未使用面向对象的编程。
我有以下疑问。 p>
-
我知道项目的文档很重要,但不知道这样做的程序。 p> li>
-
不确定哪个架构 遵循MVC或3层等。 p> li>
-
UML在项目中的重要性以及如何从数据库或类和对象中进行设计。 p> li>
-
如何将数据库映射到类和对象。 p> li> ol>
我已经为数据库设计了数据库 该项目,但不知道如何进一步。 p> div>
You've already created the database, but you haven't documented the project? My friend, you are in for a world of pain.
Documentation for the project, including an end-user-readable functional specification with complete managerial sign-off is critical. (Even if you're following an Agile process and there's no Big Design Up Front specification!) While each component of an ERP system is pretty straight-forward, the workflows of the users are going to be critical to understand before writing any code. Failure to get user buy-in and managerial sign-off for any component is going to kill your project and/or make it an utter failure after rollout.
It's very possible that the current user workflow is either ad-hoc or poorly documented... or worse, there is no process and it's just people working independently with no understanding of the overall flow of data/money/inventory/whatever throughout the rest of the organization. While it's not your responsibility to extract a workflow out of people, it is going to be your responsibility to ensure that workflow is created and that your application follows it. If you're the type to use UML, here's where it may shine. Just remember that UML is just a tool in the toolbox, and there are lots of other ways to represent user interaction throughout a process.
I give you this advice from personal experience. I'm a full time PHP developer, and my primary project is my employer's home-grown PHP-based ERP/CMS/CRM system. Failing to understand process before coding results in poor tools. Failing to ensure there is a process before coding results in poor tools. Failing to get both user and managerial buy-in results in poor user satisfaction, and that will hurt both your reputation and the project.
You've tagged this as a PHP question. MVC with a modern PHP framework is going to be wise. I kind of like Zend Framework, but many others swear by CodeIgniter, Symfony, Yii, Kohana and Lithium. Evaluate a few, and make at least one choice. Many modern frameworks are loosely-coupled and can work well together. I understand that ZF and Symfony can make a good pair.
As for the mapping of database tables to classes and objects, always keep in mind the "M" in MVC -- the Models. Models are responsible for containing business logic and the related data. Your Models should be the parts responsible for working with the database. The frameworks I've mentioned include many tools that make it easy to build useful, correct, extensible models using a variety of methods and patterns. Again, evaluate your available framework options and how they prefer building their Models to find a solution that will work well for you.