Согласно руководству по торту App::import()
сравнимо с тем, как работает require_once()
.Из того, что я понимаю, вы могли бы загружать классы, используя App:uses()
, а файлы Vendor - App:import()
.
. Документация API говорит следующее по теме:
Все классы, которые были загружены в прошлом с использованием App::import(‘Core’, $class)
, должны быть загружены с использованием App::uses()
, ссылаясь на правильный пакет.Это изменение обеспечило большой прирост производительности для платформы.
- Метод больше не ищет рекурсивные классы, он строго использует значения для путей, определенных в
App::build()
- .невозможно загружать
App::import('Component', 'Component')
использовать App::uses('Component', 'Controller');
. - Использование
App::import('Lib', 'CoreClass');
для загрузки основных классов больше невозможно.Импорт несуществующего файла, указание неверного типа или имени пакета или значений null
для параметров $name
и $file
приведет к ложному возвращаемому значению. App::import('Core', 'CoreClass')
больше не поддерживаетсявместо этого используйте App::uses()
, и пусть автозагрузка класса сделает все остальное. - Загрузка файлов поставщика не выглядит рекурсивно в папке vendors, она также не преобразует файл в подчеркивание, как это было в прошлом.
В руководстве по миграции также есть некоторые вещи, которые можно сказать о App:uses()
, и это хорошая отправная точка для сравнения лучших практик 2.0 с более старыми методами из1.3 и ниже.
Этот связанный вопрос касается загрузки файлов продавца в Cake 2.0, я не могу подтвердить утверждение Хосе Лоренцо о том, что App:import()
является «глупой оболочкой» для require_once()
, а также утверждение, что это предпочтительный способ включения файлов.Единственная ссылка, которую я мог найти для последнего, - это Стандарты кодирования для участников Cake, а именно.разработчики, участвующие в разработке ядра Cake, а не приложения, созданные на платформе.
EDIT
Допустим, вы хотите импортировать библиотеку OAuth Twitter ,находится в Vendor/twitter
, файл основного класса - twitteroauth.php
в Vendor/twitter/twitteroauth/twitteroauth.php
:
App::import('Vendor', 'twitteroauth', array('file' => 'twitter'.DS.'twitteroauth'.DS.'twitteroauth.php'));