我正在编写一个基于 zend 框架的 PHP 库。我的几个 Web 项目使用了我的库。我不确定我应该把我的图书馆放在哪里。将它放在单个项目的文档根目录之外似乎很有意义,因此我不必在每个单独的项目中维护该库。我当前的设置如下所示:
/var/www/vhosts/project1/
/var/www/vhosts/project2/
/var/www/vhosts/libraries/zend-framework/zend-framework-1.11.0/...
/var/www/vhosts/libraries/my-lib/my-lib-1.0.0/...
像这样,特定版本的 zend-framework 和 my-lib 都可以在我的项目中使用。
替代设置如下所示:
/var/www/vhosts/project1/
/var/www/vhosts/project1/libraries/zend-framework/zend-framework-1.11.0/...
/var/www/vhosts/project1/libraries/my-lib/my-lib-1.0.0/...
/var/www/vhosts/project2/
/var/www/vhosts/project2/libraries/zend-framework/zend-framework-1.11.0/...
/var/www/vhosts/project2/libraries/my-lib/my-lib-1.0.0/...
第一个版本对我来说更有意义,但我不确定如果我的项目依赖于文档根文件夹之外的文件,我是否会遇到一些安全问题。此外,如果 my-lib 在项目文档根目录之外,当我尝试将 my-lib 中的 javascript 文件包含在我的项目中时,我会遇到问题。
这里的最佳实践是什么,我应该把我的库和 zend 框架放在哪里?
最佳答案
如果/var/www/vhosts/libraries 可以从外面访问,我建议你把你的库放低一层 (/var/www/libraries) 所以:
- 您可以与所有 PHP 应用程序共享同一个库
- PHP 无需调整权限即可访问它
- 它不能直接从前端站点访问
关于文档根目录内部或外部的 PHP 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4658570/