MVC/TD ====== A 'light' MVC (model-view-controller) framework for PHP web applications. LICENSE ======= Copyright (c) 2012 Tobias Dammers. Released under a BSD-3 license. Please see the included LICENSE file for details. REQUIREMENTS ============ * PHP 5.x, and anything you may need to run it. * The models use PDO, so if you want to use those, you'll need to have PDO support in PHP. * Apache, with mod_rewrite INSTALLING ========== Download everything and keep it somewhere convenient. The mercurial repository is at https://bitbucket.org/tdammers/mvc-td If you want to run the examples, you need to create a separate virtual host for each one, and point the docroot at the /www directory inside the example's root dir. BASIC USAGE =========== 1. Put mvctd.php and the entire /code subdirectory somewhere convenient, but outside the docroot. 2. Include mvctd.php from your entry-point PHP script. You probably want to set up Apache rewrites that route everything to the same entry point, e.g. index.php. 3. In the examples directory, example 1 has a fairly suitable default index.php (examples/ex1/www/index.php) which you can use as a starting point. 4. If you want to use the Database object, you'll need a configuration somewhere that specifies access details for the DBMS. Use the Config::load method to provide it as an associative array structure, or Config::loadJsonFile to load it from a JSON file. 5. Write some models. Models that inherit from BaseModel provide some basic ORM facilities, but you can also use your own models and implement your own persistence layer. Note that you'll have to write and maintain the database schema yourself and make sure the Model classes match the actual database. 6. Write some controllers and put them into the controller directory configured in step 3. All controllers should inherit from BaseController. A typical controller will override the process() method to do its thing, set a suitable view_name, and populate its view_data. The template engine understands data in both associative array and object format, and you can freely mix both styles, e.g. an array containing objects of which some properties are arrays, etc. Magic __get() properties will also work as expected. If you use the default URL mapper, the controller's class name and the filename must follow the following convention: * the filename uses lower-case with underscores, e.g. foobar_baz.php * the controller name must be the same, but in pascal-case, with a lower-case 'c' prefixed (for 'controller'): cFoobarBaz. 7. Write some templates and put them into the template directory configured in step 3 (assuming you are using the default view engine, which simply loads files from a configured directory).