我是一名PHP开发人员,我读过有关Java EE技术的文章,我想用PHP实现这些技术(n层,EJB,JPA ......)以及所有的东西(MySQL,Apache ......)。
答案 0 :(得分:10)
别。
PHP不是Java。像编写Java代码一样编写PHP代码愚蠢并适得其反。这很可能会使代码的未来维护者想要伤害你。
需要坚持一个物体吗? Use an ORM
需要多层架构吗?如果你设计的代码有适当的关注点分离,那么你已经有了9/10的路径。
的EJB?每次我阅读维基百科文章时,都会有不同的描述。可重复使用的组件?什么是分布式应用程序和数据持久性的标准化接口?有用,是的,但那不是PHP。 ORM和a good message/work queue将完成工作。
底线:对于绝大多数PHP脚本,您不需要任何“企业技术”。如果您这样做,那么您做错了:要么您已经过多了应用程序,或者您选择了错误的平台。
首先选择a modern PHP framework,然后从那里构建应用程序。如果你来自Java,那么Zend Framework似乎是最不受欢迎的。 Kohana,Symfony和CodeIgniter都值得。现在避免蛋糕。
保持简单,你就不会出错。
答案 1 :(得分:1)
你的问题很有见地。这是因为随着您的企业变得更加成功,它必须向上扩展以支持更多流量的负载。因此,您必须将PHP代码分离为在单独的层上运行的层(单独的服务器或单独的虚拟机,如Xen。)
例如,我在去年设计了一个用10个Linux OpenSUSE服务器实现的系统,运行大约25个Xen虚拟机(VM)。有些VM是负载平衡器,有些是前端层,有些是中间层,有些是是后端层,有些包含MySQL数据库,我们有几个专用服务器,它们是用于存储用户文件的RAID阵列。我们根据需要创建了NFS安装来保存/读取RAID阵列中的文件。
我们将这些级别分为三个相关组,因此我们可以为QA,分段(用户验收)和生产提供独立的测试站点。
所以我们的PHP软件被分成松散耦合的层,如下所示:
FRONT-END TIER(VMs)
MIDDLE TIER(VMs)
后端级别(VM)
另一位受访者提出使用企业软件框架的想法对我来说似乎很愚蠢。如果您在单个服务器上开发学生项目或“概念证明”,并且您已熟悉框架,则可能会将其用于快速原型设计。
但正如您从上面所看到的,当您编写分布在多个层级的生产质量代码时,您不需要使用框架。
您将框架链接到代码中的所有位置?在每一层?馊主意。框架包括您可能需要的许多页面,您可能不需要。因此,它们会降低性能,尤其是在乘以必须安装它们的每个层时。
同样低效的是创建一个“层”只是为了包含每个其他层必须调用的框架。软件层的好处是松散耦合并独立于其他层,因此当一层发生变化时,它们不需要在另一层中进行更改。
此外,编写生产质量代码的开发人员不需要依赖框架所代表的“瑞士军刀”。这样的开发人员能够编写有针对性的高效代码,并在必要时重用他们可能为以前的项目开发的库中的类。