gpt4 book ai didi

cakephp - 在 CakePHP 2.1 插件中使用 App::uses(而不是 App::import)

转载 作者:行者123 更新时间:2023-12-04 01:20:28 25 4
gpt4 key购买 nike

我正在用 CakePHP 2.1 编写一个小应用程序,我想使用 Nick Baker 的文件上传插件。我下载了 cakephp2.0 分支(我知道还没有完成),并将它放在我的应用程序插件文件夹中。我对其进行了一些必要的修改,但我很好奇替换那些的正确方法是什么 App::import函数调用(在 FileUploadComponentFileUploadBehaviorFileUploadHelper 类的开头)与 App:uses功能。

它需要导入 FileUploadSettings来自 Config/file_upload_settings.php 和 Uploader 的类来自 Vendor/upload.php 的类。可以通过 require_once 来完成函数,但我确信有一种 CakePHP 方法可以做到这一点。

最佳答案

根据蛋糕手册App::import()堪比路require_once()作品。据我了解,您将使用 App:uses() 加载类和供应商文件使用 App:import() .

API 文档说 the following关于这个问题:

All classes that were loaded in the past using App::import(‘Core’, $class) will need to be loaded using App::uses() referring to the correct package. This change has provided large performance gains to the framework.

  • The method no longer looks for classes recursively, it strictly uses the values for the paths defined in App::build()
  • It will not be able to load App::import('Component', 'Component') use App::uses('Component', 'Controller');.
  • Using App::import('Lib', 'CoreClass'); to load core classes is no longer possible. Importing a non-existent file, supplying a wrong type or package name, or null values for $name and $file parameters will result in a false return value.
  • App::import('Core', 'CoreClass') is no longer supported, use App::uses() instead and let the class autoloading do the rest.
  • Loading Vendor files does not look recursively in the vendors folder, it will also not convert the file to underscored anymore as it did in the past.


迁移指南还有 some things to say关于 App:uses()并且通常是将 2.0 的最佳实践与 1.3 及更低版本的旧方法进行比较的良好起点。

This related question处理在 Cake 2.0 中加载供应商文件,我无法验证 José Lorenzo 的声明 App:import()require_once() 的“傻包装” ,也没有声明它是包含文件的首选方式。我能找到的关于后者的唯一引用是在 Coding Standards 中。对于蛋糕贡献者,即。为 Cake 核心做出贡献的开发人员,而不是构建在该框架上的应用程序。

编辑

假设您要导入 Twitter OAuth library , 居住在 Vendor/twitter ,主类文件为 twitteroauth.phpVendor/twitter/twitteroauth/twitteroauth.php :
  App::import('Vendor', 'twitteroauth', array('file' => 'twitter'.DS.'twitteroauth'.DS.'twitteroauth.php'));

关于cakephp - 在 CakePHP 2.1 插件中使用 App::uses(而不是 App::import),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com