/** * @mainpage OJS API Reference * * Welcome to the OJS API Reference. This resource contains documentation * generated automatically from the OJS source code. * * The design of Open %Journal Systems is heavily structured for * maintainability, flexibility and robustness. Those familiar with Sun's * Enterprise Java Beans technology or the Model-View-Controller (MVC) pattern * will note similarities. * * As in a MVC structure, data storage and representation, user interface * presentation, and control are separated into different layers. The major * categories, roughly ordered from "front-end" to "back-end," follow: * - Smarty templates, which are responsible for assembling HTML pages to * display to users; * - Page classes, which receive requests from users' web browsers, delegate * any required processing to various other classes, and call up the * appropriate Smarty template to generate a response; * - Controllers, which implement reusable pieces of content e.g. for AJAX * subrequests. * - Action classes, which are used by the Page classes to perform non-trivial * processing of user requests; * - Model classes, which implement PHP objects representing the system's * various entities, such as Users, Articles, and Journals; * - Data Access Objects (DAOs), which generally provide (amongst others) * update, create, and delete functions for their associated Model classes, * are responsible for all database interaction; * - Support classes, which provide core functionalities, miscellaneous common; * * Additionally, many of the concerns shared by multiple PKP applications are * implemented in the shared "pkp-lib" library, shipped in the lib/pkp * subdirectory. The same conventions listed above apply to lib/pkp as well. * * As the system makes use of inheritance and has consistent class naming * conventions, it is generally easy to tell what category a particular class * falls into. * * For example, a Data Access Object class always inherits from the DAO class, * has a Class name of the form [Something]%DAO, and has a filename of the form * [Something]%DAO.inc.php. * * To learn more about developing OJS, there are several additional resources * that may be useful: * - The docs/README.md document * - The PKP support forum at https://forum.pkp.sfu.ca/ * - Documentation available at https://docs.pkp.sfu.ca/dev/ * * @file ojs/index.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @ingroup index * * Bootstrap code for OJS site. Loads required files and then calls the * dispatcher to delegate to the appropriate request handler. */ // Initialize global environment define('INDEX_FILE_LOCATION', __FILE__); $application = require('./lib/pkp/includes/bootstrap.inc.php'); // Serve the request $application->execute();