====== Naming Conventions====== ====Classes==== Classes use MixedCase and have no underscores, each word starts with a uppercase letter, e.g. InvoiceItem ====Database Table==== Table names have all lowercase letters and underscores between words, also all table names need to be plural, e.g. invoice_items, orders ===== Model ===== The model is named using the class naming convention of unbroken MixedCase and is always the singular of the table name, e.g. table name might be orders, the model name would be Order. Akelos will then look for the class definition in a file called order.php in the /app/models directory. If the model class name has multiple capitalised words, the table name is assumed to have underscores between these words. ===Primary Key=== The primary key of a table is assumed to be named id. ===Foreign Key=== The foreign key is named with the singular version of the target table name with _id appended to it, e.g. order_id in the items table where we have items linked to the orders table. ===Many to Many Link Tables=== Tables used to join two tables in a many to many relationship is named using the table names they link, with the table names in alphabetical order, for example items_orders. ===Automated Record Timestamps=== You can get ActiveRecord to automatically update the create and update times of records in a database table. To do this create two specially named columns created_at and updated_at to your table. If you only want to store the date rather than a date and time, use created_on and updated_on. ====Controller==== Controller class names are pluralized when applicable, such that OrdersController would be the controller class for the orders table. Akelos will then look for the class definition in a file called orders_controller.php in the /app/controllers directory. ==== Action Controller and Helper Methods==== Action Controller and Helper methods are named where all letters are lowercase and words are separated by underscores, e.g. list_all, textilize ====Files, Directories and other pluralization==== Files are named using lowercase and underscores. Assuming we have an Orders controller then the following other conventions will apply: * That there is a helper module named OrdersHelper in the orders_helper.php found in the app/helpers directory * Akelos will look for view template files for the controller in the app/views/orders directory * Output from this view will then be used in the layout defined in the orders.php in the app/views/layouts directory