首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP代码生成

PHP代码生成
EN

Stack Overflow用户
提问于 2018-01-05 12:21:57
回答 1查看 300关注 0票数 0

我不是eval(),而是研究使用php代码动态创建.php文件的利弊。

主要是因为所生成的代码应该可供其他访问者使用,而且可以使用很长时间,而不仅仅是当前会话。生成的php文件是使用专用于此的函数创建的,并且只在高度控制的条件下创建(用户输入永远不会到达这些代码文件)。

因此,就性能而言,与更新数据库记录和每次访问时总是查询数据库相比,在其他地方使用include()创建..php文件以便立即执行时,when服务器的负载是多少?

生成的文件应该非常频繁地更新(覆盖),但与它们的执行频率相比不太频繁。

其他的赞成/反对意见是什么?在其他用户正在执行代码文件的同时,是否应该组合一个用户覆盖代码文件,从而引入复杂的并发冲突解决?使用Mutex?如果访问者不断地“查看”(执行)文件,那么几乎不可能覆盖这些文件吗?

PS。我对实现“相同”目标的替代方法/解决方案不感兴趣,如:

  1. 作为替代,缓存和/或保存的输出缓冲区是不可能的,主要是因为生成的php-代码的输出具有高度的动态性和上下文敏感性。
  2. 将代码作为变量存储在数据库中,并创建动态php代码,该代码可以根据存储的数据执行请求,主要是因为我不想使用数据库作为特性的后端。我从来不需要搜索数据,查询数据的聚合、排名或任何其他数据收集或操作。
  3. Memcached,APC等等。这不是我想要的缓存功能
  4. 在内存中运行自定义编译二进制的独立(而不是PHP)服务器。这不是我在这里寻找的东西,尽管我已经想到了这个选择。

编辑:对于生成什么“类型”代码有很多疑问。无需详细说明,我可以说:这是非常敏感的上下文代码。代码不是基于用户的直接输入,而是基于选择、位置和标志的输入。就像“封闭”对象与其他对象的关系。大多数代码部分以许多不同但非常可控的方式相互关联(类似于链接列表、人工智能代码中的遗传细胞等),因此查询数据库是不可能的。一个代码文件将包含一个或多个其他文件,等等。

EN

回答 1

Stack Overflow用户

发布于 2018-01-05 12:58:56

我在应用程序中也做了同样的事情。它从MySQL数据库中的数据生成静态PHP。我将代码存储在memcached中,并使用‘eval’来执行它。只有当MySQL数据库中的某些内容发生变化时,我才重新生成PHP。它节省了大量的MySQL读物

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

https://stackoverflow.com/questions/48113567

复制
相关文章

相似问题

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