The routes.php filelets you remap URI requests to specific controller functions. For example, you may
have a controller named sitewith a function named index. The URI for this controller/function
combination might be:
http://www.example.com/site/index
Furthermore, if your site controller had a pagesfunction that accepted a numeric ID for database
lookup, the URI might look like this:
http://www.example.com/site/pages/4
In some cases, you might want to remap one or more of these default routes. For example, the second
example might be better displayed as this:
http://www.example.com/about_us/
In that case, your routes.php file would contain a rule like this:
$route[‘about_us’] = “site/pages/4”;
For right now, though, this kind of manipulation falls under “ advanced usage, ” so don ’ t worry too much
about it. However, please do note that this kind of thing is possible. Also, be aware that two “ reserved
routes ” exist: default_controller and scaffolding_trigger.
$route[‘default_controller’] = “welcome”;
The default_controller route tells CodeIgniter which controller should be loaded if no controller is
identified. For simplicity ’ s sake, keep this setting.
CodeIgniter Libraries
CodeIgniter libraries help you do your job faster and more efficiently. Each libraryis really a PHP class
with various methods that you can use once the library is loaded by a controller.
CodeIgniter gives the following libraries:
Benchmarking — The Benchmarking libraryis always active. Use it to determine the time
difference between any two marked points in code and to calculate memory usage.
Calendaring — The Calendaring librarymust be loaded by a controller. Use it to dynamically
create calendars for given months and years, with some control over formatting and appearance.
Config — The Config libraryis initialized automatically by the system. Use it to retrieve
configuration information.
Database — The Database libraryis a very powerful set of methods that must be loaded. You ’ ll
be using this library so much that the next subsection of this chapter focuses on it exclusively.
Email — The Email librarymust be loaded. It includes a very powerful set of tools that simplifies
the job of sending e - mails.
Encryption — The Encryption librarymust be loaded. It provides you with powerful two - way
encryption methods.
File Uploading — The File Uploading librarymust be loaded. Use this library whenever you need
to handle file uploads. It includes powerful validation features that can restrict a file by mime
type, size in kilobytes, or even image dimensions.
FTP — The FTP librarymust be loaded. Use this library to transfer files to a remote server only
standard FTP is supported, by the way.
HTML Table — The HTML Table librarymust be loaded. Use this very versatile library to
autogenerate HTML tables from arrays or database result sets.
Image Manipulation — The Image Manipulation librarymust be loaded. Use it to resize images,
create thumbnails, crop or rotate images, and watermark images. Some functions require further
PHP support such as GD/GD2.
Input and Security — The Input and Security librarymust be loaded. Use it to pre - process input
data from forms and URLs and to handle some security functions such as guarding against
XSS attacks.
Language — The Language librarymust be loaded. Use this library to load different sets of
language files for internationalization.
Loader — The Loader libraryis automatically loaded. You will use this library primarily to load
views with your controller, but it is also used to load libraries.
Output — The Output libraryis automatically loaded. This library has one main function: Send
the finalized web page to the requesting browser. It is also used for caching.
Pagination — The Pagination librarymust be loaded. Use this labor - saving library to paginate
database results for performance and usability. You can control how many records to display per
page, how many records to pull from the database, and the look and feel of different parts of the
pagination.
Session — The Session librarymust be loaded. Use CodeIgniter ’ s Session library to maintain
state information about a user. This library does not use PHP ’ s built - in sessions — instead, it
generates its own session data. Because this library is so important, a separate subsection of this
chapter is devoted to it.