Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在我的设计模型中混合使用Javascript和PHP_Php_Javascript_Design Patterns_Uml - Fatal编程技术网

在我的设计模型中混合使用Javascript和PHP

在我的设计模型中混合使用Javascript和PHP,php,javascript,design-patterns,uml,Php,Javascript,Design Patterns,Uml,我正在开发一个web应用程序,我正在使用PHP和Javascript。今天,我开始绘制所有的设计类图,但我不知道如何准确地混合这两种技术 我认为以下几点应该是好的: 但是,实际上,我不确定在类名中键入.php扩展是否足够清晰,或者我需要的是将图表分成两部分:一个用于Javascript类,另一个用于php类 我正在使用CodeIgniter(MVC模式)和Javascript。任何建议都将不胜感激 谢谢 我不知道你通常的做事方式,但在我的项目中,我倾向于将PHP和JS分开。首先,如果你这样做的

我正在开发一个web应用程序,我正在使用PHP和Javascript。今天,我开始绘制所有的设计类图,但我不知道如何准确地混合这两种技术

我认为以下几点应该是好的:

但是,实际上,我不确定在类名中键入.php扩展是否足够清晰,或者我需要的是将图表分成两部分:一个用于Javascript类,另一个用于php类

我正在使用CodeIgniter(MVC模式)和Javascript。任何建议都将不胜感激


谢谢

我不知道你通常的做事方式,但在我的项目中,我倾向于将PHP和JS分开。首先,如果你这样做的话,开发和调试会更容易;其次,如果你把javascript当作第二层,而不是像PHP那样处于同一编程级别,那么在JS不工作或者你的web应用的用户禁用javascript的情况下,你会得到一个有效的回退

我倾向于用PHP实现所有功能,后来我用javascript覆盖了一些操作,使它们通过ajax工作,而不是传统的老式Web工作方式

---第一次评论后的修订---

然后,您可能希望将PHP和Javascript部分视为独立的应用程序。第一个系统(PHP)生成初始状态。在用户操作后,第二个系统(JS)对第一个系统进行查询并等待答案,这样,您将设置某种API来标准化您的事务

我曾与设计信息专家合作,他们经常将杰西·詹姆斯·加勒特称为该专业领域的“大师”,你可能想查看他的网站(omnigraffle、visio和其他一些网站都有预制模板)

通过他的写作和示例,您可能会找到正确的符号和元素来表示您的系统


通常情况下,您不想这样做。在浏览器中查看网页时存在延迟问题。每个单独的javascript文件都会破坏缓存,需要额外的传输时间才能加载页面。在可能和实际的情况下,最好将JS文件组合在一起,以便更好地利用浏览器缓存。所以我的第一个建议是不要因为架构上的原因而随意拆分JS

现在,尽管如此,要完整地回答您的问题,我认为这取决于您如何看待JS。如果您从增强PHP应用程序的角度来看它,那么将它与视图一起分割是不错的(上面的建议不成立)

然而,我通常认为JS是PHP应用程序之上的一个单独的应用程序层。JS通过定义的API与PHP层交互。因此,它基本上只是一个完整的GUI应用程序,恰好使用PHP应用程序定义的API。因此,考虑到这一点,我通常使用比PHP应用程序更依赖于自身的体系结构构建JS应用程序。所以换句话说,仅仅因为JS应用程序的一部分与PHP交互并不意味着这段代码属于PHP应用程序


这有意义吗?

尝试将所有类(即使在一个应用程序中-您有两个应用程序:一个PHP应用程序和一个JS应用程序)放在一个UML图上几乎是一种浪费大量时间而一无所获的方式


使用UML显示一个包或一组类之间的依赖关系,但不要尝试对整个应用程序进行此操作。

您对您的模型(图表)或如何将它们组合到应用程序中有何评论?我有一些Javascript类和其他PHP类,所以我需要的是如何将它们组合到单个图表中(因为有些PHP视图使用的是我的JS代码)。谢谢!所以问题是您应该如何在图表中表示它们,而不是在服务器上表示为文件?投票迁移到programmers.stackexchange.comHi Jeff,谢谢您的回答。整个项目都使用这两种技术(大量Javascript,并使用PHP通过Ajax加载一些外部资源)。如果用户禁用了Javascript,网页将无法工作(但这不是我的决定,我只是一名软件工程师).所以,你把设计分为两层,但是你的图表呢?你能用几句话解释一下你是如何画出同时使用JS和PHP的图表的吗?再次感谢!我同意第二部分,javascript是给定视图的一部分,PHP是你的控制器,一些存储是你的应用程序模型。@Chris:这是一个w是的。有不止一种。例如,如果你在做不引人注目的JS,但仍然需要ajax交互,你不能将其构建为完整的视图层,因为你需要PHP中的视图层来实现不引人注目的部分。这就是为什么采用不同的方法。我通常将其视为一个完全独立的应用程序(并对其进行测试)这是相关的,因为它调用API。只是不同的看待它的方式(多于1并没有错)…这是一个比我自己的视图更精细的视图,但思路相同。我完全同意,并且更喜欢这个视图!我的问题是,在HTML生成方面,您对js与服务器端php的责任有多大?(当然,这个答案是主观的,但从您的经验来看很奇怪。)@Chris:大约98%的时间我使用JS作为一个单独的可选层。这意味着如果浏览器关闭了JS,PHP应该是完全功能的。这需要更多的工作,因为你需要提供两个API(一个用于HTML,另一个用于AJAX),但如果你使用MVC,这很容易。现在,对于一些用例,这是不可能的,因为站点的点在JS中,因此在这些情况下,JS将直接集成到视图层,而不是扩展它。所以我猜答案是这取决于。我将在不同的图表中分离JS层和PHP层。感谢所有的提示s