在 Cakephp 2.X 中放置供应商文件的正确位置在哪里?

我已经接管了一个旧的 CakePHP 2.X 网站,并且之前没有使用 CakePHP 的经验,所以如果这是一个愚蠢的问题,请原谅我。

我正在考虑对一些供应商文件进行一些更改,并注意到我们似乎在 2 个不同的地方有各种文件的多个副本(在大多数情况下,它们是相同的):

  • 应用程序/webroot/api/供应商/API/lib/

  • 供应商/API/lib/

此外,我注意到在其他各个地方还有其他几个供应商目录。

App::import('Vendor', 'example', array('file' => 'API/lib/example.php'));用来加载有问题的脚本。

有人可以向我解释一下与供应商文件相关的文件结构的最佳做法是什么?此外,我可以安全地删除所有文件的重复副本吗?CakePHP 如何知道要加载哪个副本?

编辑:

我得出的结论是文件是从而不是加载的vendors/API/lib/app/webroot/api/vendor/API/lib/后一个位置的文件是否可能是多余的?我似乎找不到对它们的任何引用。


温温酱
浏览 112回答 1
1回答

德玛西亚99

正如 Sudhir 评论过你的那样,你的应用项目中有一个名为 Vendor 的文件夹。我建议你把它放在那里。应用程序 > 供应商例如,我创建了一个名为 Csv 的文件夹,用于通过启动它们的 Shell 生成我自己的 csv 文件。它位于 app > Vendor > Csv 内为了将它导入我的项目,我做了下一个能够使用它的操作:&nbsp; &nbsp; &nbsp;<?php&nbsp; &nbsp; &nbsp; include('GenericShell.php');&nbsp; &nbsp; &nbsp; require_once(ROOT . DS . 'app' . DS . 'Vendor' . DS . 'Csv' . DS .&nbsp;&nbsp; &nbsp; &nbsp; 'CsvGenerator.php');&nbsp; &nbsp; &nbsp;class CsvPatientsShell extends GenericShell {这是 PHP 的唯一示例。另一种情况是,如果在这种情况下,您有一个名为 component.php 的组件,并且您想将其导入到您在项目中经常使用的控制器中:组件将位于 Controller > Component > Namecomponent.php接下来你要做的就是在你的控制器中同样进行导入:假设你的控制器的名称是 NameController.php 并且位于 Controller 文件夹中。控制器 > NameController.php&nbsp; public function main_function() {&nbsp; &nbsp; App::import('Component', 'Namecomponent');&nbsp; &nbsp; $NameComponent = new NameComponent();&nbsp; &nbsp; $this->layout = null;&nbsp; &nbsp; $this->autoLayout = false;&nbsp; &nbsp; die();}这将是使用 CakePhp 的一种更正确的方法,但我会说两者都是合法的。我希望这会以某种方式帮助你。
打开App,查看更多内容
随时随地看视频慕课网APP