I’m writing a small application in CakePHP 2.1, and I want to use Nick Baker’s file upload plugin. I downloaded the cakephp2.0 branch (I know that isn’t done yet), and placed it in my apps Plugin folder. I made some necessary modifications on it, but I’m curious what the right way is to replace those App::import function calls (at start of FileUploadComponent, FileUploadBehavior and FileUploadHelper classes) with the App:uses function.
It needs to import the FileUploadSettings class from Config/file_upload_settings.php and the Uploader class from Vendor/upload.php. It can be done with the require_once function, but I’m sure there is a CakePHP way to do it.
According to the Cake manual
App::import()is comparable to the wayrequire_once()works. From what I understand you would load classes usingApp:uses()and Vendor files usingApp:import().The API documentation says the following on the subject:
The migration guide also has some things to say about
App:uses()and is a good starting point in general to compare best practices for 2.0 with the older methods from 1.3 and lower.This related question deals with loading Vendor files in Cake 2.0, I can’t verify the claim by José Lorenzo that
App:import()is a “silly wrapper” forrequire_once(), nor the statement that it’s the preferred way of including files. The only reference I could find for the latter is in the Coding Standards for Cake contributors, viz. developers contributing to the Cake core, not applications built on the framework.EDIT
Let’s say you want to import the Twitter OAuth library, residing in
Vendor/twitter, the main class file istwitteroauth.phpinVendor/twitter/twitteroauth/twitteroauth.php: