Home » Support » Help Articles » Controller in the Batoi OSF

Controller in the Batoi OSF

Back to Help Articles Home

A Controller is a PHP file that takes the HTTP request, and manages the execution path of the application (instance of application) at server-side. An application can have more than one controller files when required. A Controller file can define public URLs or private URLs (i.e., password protected URLs) as the situations demand. However, a Controller file cannot have both public and private URLs, and you need separate Controller files for this.

A Controller file is defined and edited by the OSF IDE, and requires the developer to specify the controller file name. The Controller file name can be prepended by path from root of application folder if it is located inside an inner directory, but never include any slash in the beginning. For example

  1. Controller name is mycontroller.php if it is located in application root directory.
  2. Controller name is test/mycontroller.php if it is located inside directory test located in application root directory.


We have decided to use the name as mycontroller.php in the above example, but you can name anything. Please note further that you can also choose other file extension for your controller file if you are ready to implement that as a PHP script through your apache configuration or .htaccess)

Please note that you already get one controller when you install the OSF - index.php:

  1. index.php is the default controller of application as anybody will access this file when they go to. In case of public website, this controller can be made public. In case of web application, this controller can be made private, and sign.php be made its Sign In controller.

What Does A Controller Do in the OSF?

  1. Declares special PHP environment setting, if any (these are particularly php.ini directive(s))
  2. Starts Session with the line session_start();
  3. Defines $_CTRID. This will be the ctrid field value at *od_controller table for corresponding controller file.
  4. Includes the file load.delight.php. This act will instantiate three Delight objects: $DB, $APP and $USER (if it is private controller)
  5. Calls BL based on application instance ($APP->ID), and loads data for like $APP->VIEWPARTS, $APP->$FORMRULES and $APP->$PAGEVARS
  6. Finally, calls viewparts as defined for the application instance (in $APP->VIEWPARTS). If no view part is defined for a particular instance, data arrays as obtained from BL calls, are sent back to UI by the Controller (usual in case of AJAX calls from UI).

Updated on Aug 20, 2016

The techReview is an online magazine by Batoi and publishes articles on current trends in technologies across different industry verticals and areas of research. The objective of the online magazine to provide an insight into cutting-edge technologies in their evolution from labs to market.

Visit techReview

English - IN (USD)
New Users? Signup.     Existing Users? Login.