Magento's base structure

Last modified by krishana on Tue, August 2, 2011 08:57
Source|Old Revisions  

Base directory The default installation contains the following files and directories in the base directory: • .htaccess • .htaccess.sample • 404 (directory) • app (directory) • cron.php • downloader (directory) • favicon.ico • index.php • index.php.sample • js (directory) • lib (directory) • LICENSE_AFL.txt • LICENSE.txt • media (directory) • pear • pkginfo (directory) • report (directory) • skin (directory) • var (directory)

The function of each of the files in the base directory The following is a run through of all the files in the base directory, to show us what they do: • .htaccess—This file controls mod_rewrite for fancy URLs and sets configuration server variables (such as memory limit) and PHP maximum execution time, so that Magento can run better. • .htaccess.sample—Works as a backup for .htaccess, so that we know the default .htaccess file (if ever we edit it and need to backtrack). • cron.php—The file that should be executed as a cron job every few minutes to ensure that Magento’s wide caching doesn’t affect our server’s performance. • favicon.ico—Magento’s default favicon; it’s the small icon that appears in the toolbar of our browser. • index.php—The main loader file for Magento and the file that initializes everything. • index.php.sample—The base template for new index.php files, useful when we have edited the index.php file and need to backtrack. • LICENSE_AFL.txt—It contains the Academic Free License that Magento is distributed under. • LICENSE.txt—It contains the Open Software License that Magento is distributed under. • pear—This controls all automatic updating via the downloader and SSH. This file is initialized and handles the updating of each individual module that makes up Magento. • php.ini—A sample php.ini file for raw PHP server variables recommended when setting up Magento on our server. This should not be used as a complete replacement, but only as a guide to replace certain lines of the php.ini server file. It is useful when overriding these variables when .htaccess isn’t enabled on our server.

The function of each of the folders in the base directory The following is a run through of all the folders in the base directory to show us their contents: • 404—The default 404 template and skin storage folder for Magento. • app—All code (modules), design (themes), configuration, and translation files are stored in this directory. This is the folder that we’ll be working in extensively, when developing a Magento powered website. Also contained in this folder are the template files for the default administration theme and installation. • downloader—The web downloader for upgrading and installing Magento without the use of SSH (covered in Chapter 2). • js—The core folder where all JavaScript code included with the installation of Magento is kept. We will find all pre-compiled libraries of JavaScript here. • lib—All PHP libraries used to put together Magento. This is the core code of Magento that ties everything together. The Zend Framework is also stored within this directory. • media—All media is stored here. Primarily for images out of the box, this is where all generated thumbnails and uploaded product images will be stored. It is also the container for importing images, when using the mass import/export tools (that we’ll go through in Chapter 10). • pkginfo—Short form of package information, this directory contains text files that largely operate as debug files to inform us about changes when modules are upgraded in any way. • report—The skin folder for the reports that Magento outputs when any error occurs. • skin—All assets for themes are stored within this directory. We typically find images, JavaScript files, CSS files, and Flash files relating to themes, in this directory. However, it can be used to store any assets associated with a theme. It also contains the skin files for the installation of skins and administration templates. • var—Typically where we will find all cache and generated files for Magento. We can find the cache, sessions (if storing as files), data exports, database backups, and cached error reports in this folder.