<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://wiki.oxwall.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.oxwall.com/feed.php">
        <title>Oxwall Software Documentation dev:core</title>
        <description></description>
        <link>https://wiki.oxwall.com/</link>
        <image rdf:resource="https://wiki.oxwall.com/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-23T22:43:28+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.oxwall.com/dev:core:coding-standards"/>
                <rdf:li rdf:resource="https://wiki.oxwall.com/dev:core:index"/>
                <rdf:li rdf:resource="https://wiki.oxwall.com/dev:core:page-lifecycle"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.oxwall.com/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Oxwall Software Documentation</title>
        <link>https://wiki.oxwall.com/</link>
        <url>https://wiki.oxwall.com/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wiki.oxwall.com/dev:core:coding-standards">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-05T08:54:28+00:00</dc:date>
        <title>Coding standards</title>
        <link>https://wiki.oxwall.com/dev:core:coding-standards</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;coding-standards&quot;&gt;Coding standards&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
If you decided to write code for Oxwall make sure you observe code style standards described in this convention.
&lt;/p&gt;

&lt;p&gt;
You don&amp;#039;t HAVE to make your code look fancy to write a great plugin but think how others looking at your code would appreciate if it&amp;#039;s written alike the rest of the Oxwall code. All rules in this convention are not taken “because we like it so” but were elaborated with readability, portability, compatibility, fail-safety and general acceptability in mind.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;Coding standards&quot; [1-505] --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;general&quot;&gt;General&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Always use full-form of PHP code tags:
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;

For files containing only PHP code, the closing tag &lt;strong&gt;&lt;em&gt;?&amp;gt;&lt;/em&gt;&lt;/strong&gt; must be ommitted. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;em&gt;include_once&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;require_once&lt;/em&gt;&lt;/strong&gt; are statements, not functions. Parentheses should not surround the subject filename.
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;co1&quot;&gt;//RIGHT&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;require_once&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'header.php'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//WRONG&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;require_once&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'header.php'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;General&quot; [506-897] --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;indenting&quot;&gt;Indenting&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Use &lt;strong&gt;4 spaces&lt;/strong&gt; instead of tabs for an indent.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;Indenting&quot; [898-967] --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;naming-conventions&quot;&gt;Naming conventions&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;Naming conventions&quot; [968-998] --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;filenames&quot;&gt;Filenames&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;view&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;php
base_dao&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;php
my_super_class&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;php&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;Filenames&quot; [999-1079] --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;classes&quot;&gt;Classes&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; MySuperClass
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//code here&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; PREFIX_MySuperClass
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//code here&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;Classes&quot; [1080-1202] --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;functions&quot;&gt;Functions&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; camelCaseFunction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; fooBar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

global functions
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; my_global_function&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;Functions&quot; [1203-1374] --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;vars&quot;&gt;Vars&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt;    &lt;span class=&quot;re0&quot;&gt;$myVar&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;private&lt;/span&gt;   &lt;span class=&quot;re0&quot;&gt;$hisVar&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;protected&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$x&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT8 SECTION &quot;Vars&quot; [1375-1460] --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;constants&quot;&gt;Constants&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;a href=&quot;http://www.php.net/define&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;MY_MEGA_CONSTANT&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Hello world&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT9 SECTION &quot;Constants&quot; [1461-1543] --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;control-structures&quot;&gt;Control structures&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;&lt;em&gt;foreach, for, while, if, switch, try, catch&lt;/em&gt;&lt;/strong&gt; etc.
&lt;/p&gt;

&lt;p&gt;
There should be one space between the control keyword and opening parenthesis in control statements, which will distinguish them from function calls.
&lt;/p&gt;

&lt;p&gt;
Use curly braces even in case they are optional, as this will make the code more readable and help to avoid logic errors appearing when new lines are added.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT10 SECTION &quot;Control structures&quot; [1544-1941] --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;switch&quot;&gt;switch&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; condition &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
        action1&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
        action2&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
        defaultAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT11 SECTION &quot;switch&quot; [1942-2151] --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;if-else&quot;&gt;if, else&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Use &lt;strong&gt;&lt;em&gt;else if&lt;/em&gt;&lt;/strong&gt; statement instead of &lt;strong&gt;&lt;em&gt;elseif&lt;/em&gt;&lt;/strong&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$a&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$b&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    doSomething1&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    doSomething2&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT12 SECTION &quot;if, else&quot; [2152-2356] --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;long-if-statements&quot;&gt;long if statements&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Split long &lt;strong&gt;&lt;em&gt;if&lt;/em&gt;&lt;/strong&gt; statements onto several lines
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; condition1
    &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; condition2
    &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; condition3 &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//code here&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT13 SECTION &quot;long if statements&quot; [2357-2531] --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;foreach-for-while&quot;&gt;foreach, for, while&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$a&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$v&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$v&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT14 SECTION &quot;foreach, for, while&quot; [2532-2619] --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;try-catch&quot;&gt;try, catch&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;try
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//code here&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
catch &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; Exception &lt;span class=&quot;re0&quot;&gt;$e&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//code here&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT15 SECTION &quot;try, catch&quot; [2620-2727] --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;function-declaration&quot;&gt;Function declaration&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
All function names must be in a &lt;strong&gt;camelCase&lt;/strong&gt;. Global functions are an exception. They should consist of words in lowercase and underscores.
&lt;/p&gt;

&lt;p&gt;
There should be whitespaces before and after parameter list.
&lt;/p&gt;

&lt;p&gt;
There should be no space between a function name and an opening parenthesis.
&lt;/p&gt;

&lt;p&gt;
There should be a new line before return statement.
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; fooBar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$param1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$param2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$param1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!===&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$param2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;//code here &lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;p&gt;
You should always declare a type of parameter when possible:
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; doSomethingGood&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; MyClass &lt;span class=&quot;re0&quot;&gt;$obj&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//code here&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;p&gt;
Global function example:
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; print_var&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$echo&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//code here&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT16 SECTION &quot;Function declaration&quot; [2728-3486] --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;function-calls&quot;&gt;Function calls&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;myCoolFunction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;myCoolMethod&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT17 SECTION &quot;Function calls&quot; [3487-3588] --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;arrays&quot;&gt;Arrays&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT18 SECTION &quot;Arrays&quot; [3589-3607] --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;indexed-arrays&quot;&gt;Indexed arrays&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$arr&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'no'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'pain'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'no'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'gain'&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$longArr&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                   &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                   &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT19 SECTION &quot;Indexed arrays&quot; [3608-3789] --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;associative-arrays&quot;&gt;Associative arrays&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$assoc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'key1'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'value1'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                 &lt;span class=&quot;st_h&quot;&gt;'key2'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'value2'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                 &lt;span class=&quot;st_h&quot;&gt;'key3'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'value3'&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT20 SECTION &quot;Associative arrays&quot; [3790-] --&gt;</description>
    </item>
    <item rdf:about="https://wiki.oxwall.com/dev:core:index">
        <dc:format>text/html</dc:format>
        <dc:date>2012-10-24T11:06:36+00:00</dc:date>
        <title>Core Code Reference</title>
        <link>https://wiki.oxwall.com/dev:core:index</link>
        <description>
&lt;h3 class=&quot;sectionedit1&quot; id=&quot;core-code-reference&quot;&gt;Core Code Reference&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
On this tutorial&amp;#039;s section will be described core&amp;#039;s architecture and all major methods. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.oxwall.com/dev:core:coding-standards&quot; class=&quot;wikilink1&quot; title=&quot;dev:core:coding-standards&quot;&gt;Coding standards&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.oxwall.com/dev:core:page-lifecycle&quot; class=&quot;wikilink1&quot; title=&quot;dev:core:page-lifecycle&quot;&gt;Page lifecycle&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
    </item>
    <item rdf:about="https://wiki.oxwall.com/dev:core:page-lifecycle">
        <dc:format>text/html</dc:format>
        <dc:date>2013-02-15T03:43:40+00:00</dc:date>
        <title>Page lifecycle</title>
        <link>https://wiki.oxwall.com/dev:core:page-lifecycle</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;page-lifecycle&quot;&gt;Page lifecycle&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Oxwall is under developement at the moment, so below you can see only preliminary version of page-lifecycle. Oxwall implements &lt;a href=&quot;#section&quot; title=&quot;dev:core:page-lifecycle ↵&quot; class=&quot;wikilink1&quot;&gt;front-controller pattern&lt;/a&gt; and all requests are handled by single script - index.php (it is the only script available for user requests).
Lets see how it works:
&lt;/p&gt;

&lt;p&gt;
First of all .htaccess file in root directory helps us to redirect all requests to front-controller script.
&lt;/p&gt;

&lt;p&gt;
Code of .htaccess:
&lt;pre class=&quot;code php&quot;&gt;Options &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;FollowSymLinks
RewriteEngine On
&lt;span class=&quot;co2&quot;&gt;#RewriteCond %{REQUEST_FILENAME} !-f
&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;#RewriteCond %{REQUEST_FILENAME} !-d
&lt;/span&gt;RewriteCond &lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;REQUEST_URI&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;^&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;index&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;php
RewriteCond &lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;REQUEST_URI&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/|&lt;/span&gt;\&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;php&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;\&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;\&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;htm&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;\&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;feed&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;\&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;pdf&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;\&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;raw&lt;span class=&quot;sy0&quot;&gt;|/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;$  &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NC&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
RewriteRule &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; index&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;php&lt;/pre&gt;

&lt;/p&gt;

&lt;p&gt;
Below you can see the code of index.php script:
&lt;/p&gt;

&lt;p&gt;
Code of index.php:
&lt;pre class=&quot;code php&quot;&gt;&lt;a href=&quot;http://www.php.net/define&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'_OW_'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/define&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'DS'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;DIRECTORY_SEPARATOR&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/define&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'OW_DIR_ROOT'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a href=&quot;http://www.php.net/dirname&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;dirname&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;__FILE__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;DS &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;require_once&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;OW_DIR_ROOT&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'includes'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;DS&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'init.php'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; OW_Application&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;getInstance&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;triggerEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;OW_EventManager&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;APPLICATION_INIT&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;triggerEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;OW_EventManager&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;ROUTE_STARTUP&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;route&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;triggerEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;OW_EventManager&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;ROUTE_SHUTDOWN&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;dispatch&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;finalize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$application&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;returnResponse&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/p&gt;

&lt;p&gt;
As we can see index.php is very simple script representing a number of definite logic steps:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; &amp;lt;-- Page start --&amp;gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;define-3-basic-constants&quot;&gt;Define 3 basic constants&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; _OW_ - is indicator if core and other classes are included within the OW framework (kind of replacement for &amp;#039;deny from all&amp;#039; instruction)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DS - short variant of standart PHP constant DIRECTORY_SEPARATOR&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; OW_DIR_ROOT - root directory constant for OW script modules&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;include-initphp-script-loads-modules-for-application-startup&quot;&gt;Include init.php script (loads modules for application startup)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; load constants and configs to run the appliaction (stored in separate PHP files - define.php and configs.php)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; load global functions (function.php)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; load classes to be used by application in any case &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; register autoloader and error manager (exception interceptor, PHP error handler)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;create-an-instance-of-front-controller-class-ow_application-and-initialize-it&quot;&gt;Create an instance of front-controller class (OW_Application) and initialize it&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; register non-autoloadable classes in autoloader object (Form, Inputs, etc)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add static routes from navigation system (static pages added from admin panel) in router object&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; register active plugins in plugin manager and load plugin init.php scripts (plugin initializers)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; initialize core basic objects: request, response, event manager, theme manager, etc&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; create and add &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; document (OW_HtmlDocument) to response object&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;trigger-event-application_init&quot;&gt;Trigger event APPLICATION_INIT&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt; &amp;lt;-- User request handling start --&amp;gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;route-requested-uri-routing-process&quot;&gt;Route requested uri (Routing process)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; search matching route in static navigation routes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; — in custom static routes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; — in dynamic routes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; try to resolve requested uri with system default route&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt; &amp;lt;-- If matches were not found -&amp;gt; show 404 page --&amp;gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;trigger-event-route_shutdown&quot;&gt;Trigger event ROUTE_SHUTDOWN&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;dispatch-routing-results-dispatching-process&quot;&gt;Dispatch routing results (dispatching process)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Check provided dispatch parameters&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create action controller instance;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Run controller action;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Get result markup and put it in &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; document object&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;trigger-event-finalize&quot;&gt;Trigger event FINALIZE&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;compile-and-send-response&quot;&gt;Compile and send response&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Compile document to send ( controller rendered body + master_page + html head part )&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; send added HTTP headers&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; send buffered debug output&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; send compiled &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; document&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt; &amp;lt;-- Page end (Here script dies) --&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
</description>
    </item>
</rdf:RDF>
