Add all the phpdocs to the domframework

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@1246 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2014-03-24 19:44:34 +00:00
parent 1b52b410c3
commit 350aa1dea8
28 changed files with 472 additions and 148 deletions

View File

@@ -1,5 +1,5 @@
<?php <?php
// Autoload /** Autoload */
spl_autoload_register(function ($class) { spl_autoload_register(function ($class) {
@include $class . '.php'; @include $class . '.php';
}); });

View File

@@ -1,6 +1,12 @@
<?php <?php
/** DomFramework - Tests
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Test the outputjson.php file */
class test_outputjson extends PHPUnit_Framework_TestCase class test_outputjson extends PHPUnit_Framework_TestCase
{ {
/** Entry null */
public function testoutputjson1 () public function testoutputjson1 ()
{ {
$this->expectOutputString("\"\""); $this->expectOutputString("\"\"");
@@ -8,6 +14,7 @@ class test_outputjson extends PHPUnit_Framework_TestCase
$output->out (""); $output->out ("");
} }
/** Entry string */
public function testoutputjson2 () public function testoutputjson2 ()
{ {
$this->expectOutputString("\"string\""); $this->expectOutputString("\"string\"");
@@ -15,6 +22,7 @@ class test_outputjson extends PHPUnit_Framework_TestCase
$output->out ("string"); $output->out ("string");
} }
/** Entry array */
public function testoutputjson3 () public function testoutputjson3 ()
{ {
$this->expectOutputString("[1,2,3]"); $this->expectOutputString("[1,2,3]");

View File

@@ -1,10 +1,16 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** User authentication (abstract class) */
class auth class auth
{ {
/** Display the authentication page /** Display the authentication page
The message is displayed to the user in case of error The message is displayed to the user in case of error
The url is the caller url to go back if authentication is correct */ The url is the caller url to go back if authentication is correct
@param string|null $message Message to display to the user
@param string|null $url URL to go back after successful authentication */
public function pageHTML ($message="", $url="") public function pageHTML ($message="", $url="")
{ {
$res = ""; $res = "";
@@ -72,7 +78,9 @@ class auth
/** Check if the email and password are correct /** Check if the email and password are correct
Return TRUE if the authentication is correct Return TRUE if the authentication is correct
Return an exception if there is a problem */ Return an exception if there is a problem
@param string $email Email to authenticate
@param string $password Password to authenticate */
public function authentication ($email, $password) public function authentication ($email, $password)
{ {
throw new exception (_("No authentication available"), 405); throw new exception (_("No authentication available"), 405);
@@ -84,7 +92,10 @@ class auth
throw new exception (_("No getdetails available"), 405); throw new exception (_("No getdetails available"), 405);
} }
/** Method to change the password */ /** Method to change the password
@param string $oldpassword The old password (to check if the user have the
rights to change the password)
@param string $newpassword The new password to be recorded */
public function changepassword ($oldpassword, $newpassword) public function changepassword ($oldpassword, $newpassword)
{ {
throw new exception (_("No password change available"), 405); throw new exception (_("No password change available"), 405);

View File

@@ -1,24 +1,36 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** User authentication against LDAP server */ /** User authentication against LDAP server */
class authldap extends auth class authldap extends auth
{ {
/** LDAP server : can be ldaps://server.domain.tld if LDAPS */ /** LDAP server : can be ldaps://server.domain.tld if LDAPS */
public $ldapserver="localhost"; public $ldapserver="localhost";
/** LDAP TCP Port (389 by default) */
public $ldapport=389; public $ldapport=389;
/** LDAP Connection timeout (5s by default) */
public $ldaptimeout=5; public $ldaptimeout=5;
/** LDAP authentication to search user */ /** LDAP authentication to search user */
public $ldapauth = ""; public $ldapauth = "";
/** LDAP authentication password */
public $ldappwd = ""; public $ldappwd = "";
/** LDAP Search base */
public $ldapbase = ""; public $ldapbase = "";
/** Filter used to search user */ /** Filter used to search user */
public $ldapfilter = "(mail=%s)"; public $ldapfilter = "(mail=%s)";
/** Field used to identify a user */
public $ldapfield = "mail"; public $ldapfield = "mail";
/** Filter used to find the available datas of an authenticated user */ /** Filter used to find the available datas of an authenticated user */
public $ldapfiltersearch = "(objectClass=inetOrgPerson)"; public $ldapfiltersearch = "(objectClass=inetOrgPerson)";
/** The opened LDAP connection identifier */
private $ldapconn = NULL; private $ldapconn = NULL;
/** The DN of the user when found */
private $ldapdnuser = NULL; private $ldapdnuser = NULL;
/** Check the availability of LDAP functions in PHP */
function __construct () function __construct ()
{ {
if (!function_exists ("ldap_connect")) if (!function_exists ("ldap_connect"))
@@ -41,7 +53,9 @@ class authldap extends auth
throw new Exception ("Authentication error in pre-auth LDAP", 500); throw new Exception ("Authentication error in pre-auth LDAP", 500);
} }
/** Try to authenticate the email/password of the user */ /** Try to authenticate the email/password of the user
@param string $email Email to authenticate
@param string $password Password to authenticate */
public function authentication ($email, $password) public function authentication ($email, $password)
{ {
$filter = sprintf ($this->ldapfilter, $email, $email, $email, $email); $filter = sprintf ($this->ldapfilter, $email, $email, $email, $email);
@@ -60,7 +74,7 @@ class authldap extends auth
$this->ldapdnuser = $dn; $this->ldapdnuser = $dn;
} }
/** Return all the parameters recorded for the authenticate user */ /** Return all the parameters recorded for the authenticate user */
public function getdetails () public function getdetails ()
{ {
if ($this->ldapdnuser === NULL) if ($this->ldapdnuser === NULL)
@@ -81,7 +95,10 @@ class authldap extends auth
return $res; return $res;
} }
/** Method to change the password */ /** Method to change the password
@param string $oldpassword The old password (to check if the user have the
rights to change the password)
@param string $newpassword The new password to be recorded */
public function changepassword ($oldpassword, $newpassword) public function changepassword ($oldpassword, $newpassword)
{ {
throw new Exception (_("The password can't be change for LDAP users"), 405); throw new Exception (_("The password can't be change for LDAP users"), 405);
@@ -117,6 +134,7 @@ class authldap extends auth
return $datas; return $datas;
} }
/** Close the LDAP connection when closing the object or PHP */
function __destruct () function __destruct ()
{ {
if (isset ($this->ldapconn)) if (isset ($this->ldapconn))

View File

@@ -1,8 +1,13 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** All the needed functions to authorize or deny access to an authenticated /** All the needed functions to authorize or deny access to an authenticated
user */ user */
class authorization class authorization
{ {
/** Separator between differents modules/objects */
private $separator = "/"; private $separator = "/";
/** Establish a connexion to the authorization database */ /** Establish a connexion to the authorization database */
@@ -11,53 +16,69 @@ class authorization
} }
/** Return if the user right is NONE, READ, WRITE, EXECUTE /** Return if the user right is NONE, READ, WRITE, EXECUTE
if the object doesn't exists, or is not readable, throw an exception */ if the object doesn't exists, or is not readable, throw an exception
@param string $object The object path to examine
@return NONE, READ, WRITE, EXECUTE */
public function validate ($object) public function validate ($object)
{ {
} }
/** Add a new object, with owner and group, and mode bits */ /** Add a new object, with owner and group, and mode bits
@param string $object Object path to add
@param integer $owner Owner ID of the object
@param integer $group Group ID of the object
@param integer $modbits Bits of authorization */
public function add ($object, $owner, $group, $modbits) public function add ($object, $owner, $group, $modbits)
{ {
} }
/** Remove the informations about an object */ /** Remove the informations about an object
@param string $object Object path to drop */
public function drop ($object) public function drop ($object)
{ {
} }
/** Change the owner of an object /** Change the owner of an object
Need to be the root administrator */ Need to be the root administrator
@param string $object Object path to add
@param integer $owner Owner ID of the object */
public function chown ($object, $owner) public function chown ($object, $owner)
{ {
} }
/** Change the group of an object /** Change the group of an object
Need to be the owner of the object or the root administrator */ Need to be the owner of the object or the root administrator
@param string $object Object path to add
@param integer $group Group ID of the object */
public function chgrp ($object, $group) public function chgrp ($object, $group)
{ {
} }
/** Change mode bits for an object /** Change mode bits for an object
Need to be the owner of the object or the root administrator */ Need to be the owner of the object or the root administrator
@param string $object Object path to change
@param integer $mod Bits of authorization */
public function chmod ($object, $mod) public function chmod ($object, $mod)
{ {
} }
/** Return the mode bits for an object if all his parents are readable for /** Return the mode bits for an object if all his parents are readable for
the user */ the user
@param string $object Object path to examine */
public function lsmod ($object) public function lsmod ($object)
{ {
} }
/** Return the owner for an object if all his parents are readable for /** Return the owner for an object if all his parents are readable for
the user */ the user
@param string $object Object path to examine */
public function lsown ($object) public function lsown ($object)
{ {
} }
/** Return the owner for an object if all his parents are readable for /** Return the owner for an object if all his parents are readable for
the user */ the user
@param string $object Object path to examine */
public function lsgrp ($object) public function lsgrp ($object)
{ {
} }

View File

@@ -1,4 +1,8 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Takes the email and the password of the user */ /** Takes the email and the password of the user */
class authparams class authparams
{ {

View File

@@ -1,7 +1,13 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** User authentication against SESSION */ /** User authentication against SESSION */
class authsession extends auth class authsession extends auth
{ {
/** Check if there is already a session or the user can not be authenticated
*/
function __construct () function __construct ()
{ {
if (!isset ($_SESSION)) if (!isset ($_SESSION))
@@ -14,7 +20,9 @@ class authsession extends auth
return TRUE; return TRUE;
} }
/** Try to authenticate the email/password of the user */ /** Try to authenticate the email/password of the user
@param string $email Email to authenticate
@param string $password Password to authenticate */
public function authentication ($email, $password) public function authentication ($email, $password)
{ {
if (!isset ($_SESSION["auth"]["email"]) || if (!isset ($_SESSION["auth"]["email"]) ||
@@ -26,6 +34,7 @@ class authsession extends auth
throw new Exception ("Bad password for '$email'", 401); throw new Exception ("Bad password for '$email'", 401);
} }
/** Return all the parameters recorded for the authenticate user */
public function getdetails () public function getdetails ()
{ {
return array ("lastname"=>$_SESSION["auth"]["lastname"], return array ("lastname"=>$_SESSION["auth"]["lastname"],
@@ -33,6 +42,10 @@ class authsession extends auth
"email"=>$_SESSION["auth"]["email"]); "email"=>$_SESSION["auth"]["email"]);
} }
/** Method to change the password : unavailable in SESSION auth
@param string $oldpassword The old password (to check if the user have the
rights to change the password)
@param string $newpassword The new password to be recorded */
public function changepassword ($oldpassword, $newpassword) public function changepassword ($oldpassword, $newpassword)
{ {
throw new Exception (_("The password can't be change for SESSION users"), throw new Exception (_("The password can't be change for SESSION users"),

View File

@@ -1,4 +1,9 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("auth.php");
/** User authentication against SYMPA server /** User authentication against SYMPA server
Sympa is a mailling list server. It can handle authentication with Sympa is a mailling list server. It can handle authentication with
- a username (a email adress) - a username (a email adress)
@@ -7,31 +12,39 @@
- a Sympa SOAP server WSDL - a Sympa SOAP server WSDL
- the part of list which should be test : subscriber, owner, editor - the part of list which should be test : subscriber, owner, editor
It use the SOAP protocol. So the PHP SOAP library is needed and the network It use the SOAP protocol. So the PHP SOAP library is needed and the network
must be open between the Web server and the Sympa server. */ must be open between the Web server and the Sympa server.
/* POC : POC :
$auth = new authsympa (); $auth = new authsympa ();
$auth->wsdl = "https://lists.domain.tld/sympa/wsdl"; $auth->wsdl = "https://lists.domain.tld/sympa/wsdl";
$auth->list = "listtest@lists.domain.tld"; $auth->list = "listtest@lists.domain.tld";
$auth->connect (); $auth->connect ();
var_dump ($auth->authentication ("user@domain.tld", "Pa$$word!")); var_dump ($auth->authentication ("user@domain.tld", "Pa$$word!"));
*/ */
require_once ("auth.php");
class authsympa extends auth class authsympa extends auth
{ {
/** URL of the WSDL Sympa server */
public $wsdl = null; public $wsdl = null;
/** Mailling list to be checked if user is present */
public $list = null; public $list = null;
public $function = "subscriber"; // can be subscriber, owner, editor /** Function of the user in the mailling list
can be subscriber, owner, editor */
public $function = "subscriber";
/** Soap Client identifier */
private $client = null; private $client = null;
/** Temporary auth key used betwwen commands */
private $authkey = null; private $authkey = null;
/** Email of the user if the authentication is correct */
private $email = null; private $email = null;
/** Check if the SOAP module is available in PHP */
public function __construct () public function __construct ()
{ {
if (! class_exists ("SoapClient")) if (! class_exists ("SoapClient"))
throw new Exception (_("No SOAP PHP library available"), 500); throw new Exception (_("No SOAP PHP library available"), 500);
} }
/** Connect to the Sympa server */
public function connect () public function connect ()
{ {
if ($this->wsdl === null) if ($this->wsdl === null)
@@ -39,6 +52,9 @@ class authsympa extends auth
$this->client = new SoapClient($this->wsdl); $this->client = new SoapClient($this->wsdl);
} }
/** Try to authenticate the email/password of the user
@param string $email Email to authenticate
@param string $password Password to authenticate */
public function authentication ($email, $password) public function authentication ($email, $password)
{ {
if ($this->client === null) if ($this->client === null)
@@ -58,11 +74,16 @@ class authsympa extends auth
return $rc; return $rc;
} }
/** Return all the parameters recorded for the authenticate user */
public function getdetails () public function getdetails ()
{ {
throw new Exception (_("The details can't be provided by Sympa"), 404); throw new Exception (_("The details can't be provided by Sympa"), 404);
} }
/** Method to change the password
@param string $oldpassword The old password (to check if the user have the
rights to change the password)
@param string $newpassword The new password to be recorded */
public function changepassword ($oldpassword, $newpassword) public function changepassword ($oldpassword, $newpassword)
{ {
throw new Exception (_("The password can't be change for SYMPA users"), throw new Exception (_("The password can't be change for SYMPA users"),

72
cli.php
View File

@@ -1,41 +1,45 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Allow to interract with controllers and models from the CLI */
class cli class cli
{ {
/** Run in CLI mode with parameters */ /** Run in CLI mode with parameters
/* Example of cli code : Example of cli code :
#!/usr/bin/php5 #!/usr/bin/php5
<?php <?php
require ("domframework/cli.php"); require ("domframework/cli.php");
$cli = new cli; $cli = new cli;
$cli->run(); */ $cli->run(); */
public function run ()
public function run ()
{
global $argv;
$launcher = $argv[0];
chdir (dirname ($argv[0])."/..");
array_shift ($argv);
if (isset ($argv[0]) && $argv[0] === "-h")
{ {
echo "Execute in CLI a controller or a model (in expert mode)\n"; global $argv;
echo " $launcher -h : display this help\n"; $launcher = $argv[0];
echo " $launcher -list : display controllers\n"; chdir (dirname ($argv[0])."/..");
echo " $launcher -expert -list : display controllers and models\n"; array_shift ($argv);
echo " $launcher -listmethods <class> : \n";
echo " display the methods available the controller class\n"; if (isset ($argv[0]) && $argv[0] === "-h")
echo " $launcher -expert -listmethods <class> :\n"; {
echo " display the methods available the model or controller class\n"; echo "Execute in CLI a controller or a model (in expert mode)\n";
echo " $launcher -listmethodsdetails <class> : \n"; echo " $launcher -h : display this help\n";
echo " display the methods available the controller class\n"; echo " $launcher -list : display controllers\n";
echo " $launcher -expert -listmethodsdetails <class> :\n"; echo " $launcher -expert -list : display controllers and models\n";
echo " display the methods available the model or controller class\n"; echo " $launcher -listmethods <class> : \n";
echo " $launcher <class> <method> [args]\n"; echo " display the methods available the controller class\n";
echo " execute the method with the provided args\n"; echo " $launcher -expert -listmethods <class> :\n";
echo " $launcher -expert <class> <method> [args]\n"; echo " display the methods available the model or controller class\n";
echo " execute the method with the provided args\n"; echo " $launcher -listmethodsdetails <class> : \n";
echo "You can replace ONE arg by a dash (-) to read from stdin\n"; echo " display the methods available the controller class\n";
exit; echo " $launcher -expert -listmethodsdetails <class> :\n";
echo " display the methods available the model or controller class\n";
echo " $launcher <class> <method> [args]\n";
echo " execute the method with the provided args\n";
echo " $launcher -expert <class> <method> [args]\n";
echo " execute the method with the provided args\n";
echo "You can replace ONE arg by a dash (-) to read from stdin\n";
exit;
} }
$EXPERT = FALSE; $EXPERT = FALSE;

View File

@@ -1,4 +1,8 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Manage the configurations of the module done by administrator in a config /** Manage the configurations of the module done by administrator in a config
file file
It is based on the module configuration defaults It is based on the module configuration defaults
@@ -11,11 +15,10 @@ $var = $config->get ("param");
*/ */
class config class config
{ {
public $default = array (); // All the parameters allowed with their default /** All the parameters allowed with their default value */
// value public $default = array ();
public $confFile = "./datas/configuration.php"; // Use the .php to protect /** Use the .php to protect the informations */
// the informations by adding a killing feature in public $confFile = "./datas/configuration.php";
// the file
/** List all the parameters configurable in the software */ /** List all the parameters configurable in the software */
public function params () public function params ()
@@ -24,8 +27,9 @@ class config
} }
/** Get the value of the provided parameter recorded in .ini file /** Get the value of the provided parameter recorded in .php file
If it is not set in .ini file, use the default value */ If it is not set in .php file, use the default value
@param string $param The option name to be returned */
public function get ($param) public function get ($param)
{ {
if (!array_key_exists ($param, $this->default)) if (!array_key_exists ($param, $this->default))
@@ -49,7 +53,9 @@ class config
} }
/** Define a value for the parameter in the config file. Add all the default /** Define a value for the parameter in the config file. Add all the default
values if they are not defined */ values if they are not defined
@param string $param The option name
@param mixed $value The option value */
public function set ($param, $value) public function set ($param, $value)
{ {
if (!array_key_exists ($param, $this->default)) if (!array_key_exists ($param, $this->default))
@@ -82,6 +88,10 @@ class config
$this->confFile)); $this->confFile));
} }
/** Display the $values in PHP format to be "require" easily
@param mixed $values Values to be recorded
@param string $phpcode Actual value of the php code
@param integer $indent Number of spaces in the indentation of config */
private function writePHP ($values, $phpcode, $indent) private function writePHP ($values, $phpcode, $indent)
{ {
foreach ($values as $key=>$val) foreach ($values as $key=>$val)

View File

@@ -1,4 +1,8 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
// dblayer.php // dblayer.php
/* Documentation : /* Documentation :
@@ -27,15 +31,20 @@ Optionnaly, you can add the
/** Permit abstraction on the differents SQL databases available */ /** Permit abstraction on the differents SQL databases available */
class dblayer extends PDO class dblayer extends PDO
{ {
/** The fields with the definition of type, and special parameters */
protected $fields = array (); protected $fields = array ();
/** The primary field */
protected $primary = null; protected $primary = null;
/** An array to define the unique fields (or array of unique fields) */
protected $unique = null; protected $unique = null;
/** The db connection */
protected $db = null; protected $db = null;
/** Debug of the SQL */
public $debug = FALSE; public $debug = FALSE;
/** Return all the tables available in the database */ /** Return all the tables available in the database */
function listTables () function listTables ()
{ {
$driver = $this->getAttribute(PDO::ATTR_DRIVER_NAME); $driver = $this->getAttribute (PDO::ATTR_DRIVER_NAME);
$rc = @include_once ("dbLayer".ucfirst ($driver).".php"); $rc = @include_once ("dbLayer".ucfirst ($driver).".php");
if ($rc === FALSE) if ($rc === FALSE)
throw new Exception (sprintf (_("dbLayer driver %s not available"), throw new Exception (sprintf (_("dbLayer driver %s not available"),
@@ -54,7 +63,11 @@ class dblayer extends PDO
MYSQL : SHOW COLUMNS FROM yourtable;*/ MYSQL : SHOW COLUMNS FROM yourtable;*/
/** Connection to the database engine /** Connection to the database engine
See http://fr2.php.net/manual/en/pdo.construct.php for the $dsn format */ See http://fr2.php.net/manual/en/pdo.construct.php for the $dsn format
@param string $dsn PDO Data Source Name
@param string|null $username Username to connect
@param string|null $password Password to connect
@param string|null $driver_options Driver options to the database */
function __construct ($dsn, $username=null, $password=null, function __construct ($dsn, $username=null, $password=null,
$driver_options=null) $driver_options=null)
{ {
@@ -62,7 +75,8 @@ class dblayer extends PDO
$this->db->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->db->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} }
/** Create a new entry in the table. Datas must be an indexed array */ /** Create a new entry in the table. Datas must be an indexed array
@param array $datas Datas to be recorded (column=>value)*/
function create ($datas) function create ($datas)
{ {
if ($this->db === null) if ($this->db === null)
@@ -145,13 +159,14 @@ class dblayer extends PDO
/** Read the table content based on a select filter, ordered by order /** Read the table content based on a select filter, ordered by order
operator and the associated select value operator and the associated select value
- $select = array (array ($key, $val, $operator), ...) @param array|null $select Rows to select with
$key=>column, $val=>value to found, $operator=>'LIKE', =... $select = array (array ($key, $val, $operator), ...)
- $display = array ($col1, $col2...); $key=>column, $val=>value to found, $operator=>'LIKE', =...
Columns displayed @param array|null $display Columns displayed
- $order = array (array ($key, $orientation), ...) $display = array ($col1, $col2...);
$key=>column, $orientation=ASC/DESC @param array|null $order Sort the columns by orientation
*/ $order = array (array ($key, $orientation), ...)
$key=>column, $orientation=ASC/DESC */
function read ($select=null, $display=null, $order=null) function read ($select=null, $display=null, $order=null)
{ {
if ($this->db === null) if ($this->db === null)
@@ -224,7 +239,10 @@ class dblayer extends PDO
} }
/** Update the key tuple with the provided datas /** Update the key tuple with the provided datas
Return the number of rows modified */ Return the number of rows modified
@param string|integer $updatekey The key applied on primary key to be
updated
@param array $datas The values to be updated */
function update ($updatekey, $datas) function update ($updatekey, $datas)
{ {
if ($this->db === null) if ($this->db === null)
@@ -326,7 +344,8 @@ class dblayer extends PDO
} }
/** Delete a tuple identified by its primary key /** Delete a tuple identified by its primary key
Return the number of deleted rows (can be 0 !) */ Return the number of deleted rows (can be 0 !)
@param strin|integer $deletekey The key of primary key to be deleted */
function delete ($deletekey) function delete ($deletekey)
{ {
if ($this->db === null) if ($this->db === null)

View File

@@ -1,8 +1,14 @@
<?php <?php
/** DomFramework Blog
@package domframework-blog
@author Dominique Fournier <dominique@fournier38.fr> */
error_reporting (E_ALL); error_reporting (E_ALL);
/** The main class : manage all the blogs articles */
class blog class blog
{ {
/** Return an article */ /** Return an article
@param string|integer|null $articleid The article to display */
private function get ($articleid = FALSE) private function get ($articleid = FALSE)
{ {
require_once ("models/model_file.php"); require_once ("models/model_file.php");
@@ -10,7 +16,8 @@ class blog
return $data->get ($articleid); return $data->get ($articleid);
} }
/** Return an article in text */ /** Return an article in text
@param string|integer|null $articleid The article to display */
public function getTxt ($articleid = FALSE) public function getTxt ($articleid = FALSE)
{ {
try try
@@ -25,7 +32,8 @@ class blog
catch (Exception $e) {}; catch (Exception $e) {};
} }
/** Return an article in xml */ /** Return an article in xml
@param string|integer|null $articleid The article to display */
public function getXml ($articleid = FALSE) public function getXml ($articleid = FALSE)
{ {
try try
@@ -40,7 +48,8 @@ class blog
catch (Exception $e) {}; catch (Exception $e) {};
} }
/** Return an article in csv */ /** Return an article in CSV
@param string|integer|null $articleid The article to display */
public function getCsv ($articleid = FALSE) public function getCsv ($articleid = FALSE)
{ {
try try
@@ -55,7 +64,8 @@ class blog
catch (Exception $e) {}; catch (Exception $e) {};
} }
/** Return an article in json */ /** Return an article in JSON
@param string|integer|null $articleid The article to display */
public function getJson ($articleid = FALSE) public function getJson ($articleid = FALSE)
{ {
try try
@@ -70,7 +80,8 @@ class blog
catch (Exception $e) {}; catch (Exception $e) {};
} }
/** Return an article in HTML */ /** Return an article in HTML
@param string|integer|null $articleid The article to display */
public function getHtml ($articleid = FALSE) public function getHtml ($articleid = FALSE)
{ {
try try

View File

@@ -1,4 +1,8 @@
<?php <?php
/** DomFramework Blog
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("domframework/route.php"); require_once ("domframework/route.php");
require_once ("domframework/renderer.php"); require_once ("domframework/renderer.php");
$route = new route (); $route = new route ();

View File

@@ -1,11 +1,16 @@
<?php <?php
/** DomFramework Blog
@package domframework-blog
@author Dominique Fournier <dominique@fournier38.fr> */
/** Model_file : store the blog datas in files */ /** Model_file : store the blog datas in files */
class model_file class model_file
{ {
/** The path where the blog articles files are stored */
public $dataPath = "datas/"; public $dataPath = "datas/";
/** Return a provided article */ /** Return a provided article
@param string|integer|null $articleid Teh article to display */
function get ($articleid = FALSE) function get ($articleid = FALSE)
{ {
$this->dataPath = realpath ($this->dataPath); $this->dataPath = realpath ($this->dataPath);

View File

@@ -1,11 +1,20 @@
<?php <?php
/** DomFramework Blog
@package domframework-blog
@author Dominique Fournier <dominique@fournier38.fr> */
/** Display the articles of the blog */
class view_blog class view_blog
{ {
/** Return the datas
@param array $data The list of titles */
function get ($data) function get ($data)
{ {
return $data; return $data;
} }
/** Display the list of titles
@param array $data The list of titles */
function listing ($data) function listing ($data)
{ {
$content = "<ul>\n"; $content = "<ul>\n";

105
form.php
View File

@@ -1,55 +1,70 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
error_reporting (E_ALL); error_reporting (E_ALL);
/** This class permit to create easily some forms to HTML (or text mode in
future).
Each field can be checked in AJAX or HTML. */
class form class form
{ {
/** This class permit to create easily some forms to HTML (or text mode in
future).
Each field can be checked in AJAX or HTML. */
/** All the fields */
private $fields = NULL; private $fields = NULL;
/** The name of the form */
private $formName; private $formName;
/** Allow to debug the PHP */
public $debug=0; public $debug=0;
function __construct ($formName = "form") /** Create a form
@param string|null $formName The form name
*/
public function __construct ($formName = "form")
{ {
$this->formName = $formName; $this->formName = $formName;
} }
/** Save the fields into the structure.
Available :
- name : name of the field in the HTML page
- label : label written to the describe the field
- [titles] : text written in radio/checkboxes
- [defaults] : default values. Must be array for checkbox/select, and
string for others
- [type] : text, password, hidden, checkbox, select, radio, submit
text by default
- [multiple] : Multiple selection are possible (if the type supports it)
- [group] : define a fieldset and define the title with groupe name
Warning : all the elements of the same group must be
consecutive !
- [readonly] : put a read-only flag on the field (the user see it but
can't interract on it. The value will be sent to next
page
- [verify] : Tests to verify with error priority and associated
message (%s is replaced by field selected value). Order
test from main tests to minor tests.
\$tmpfield can be used as a copy of the current field,
to check the defaults per example
- [error] : array containing (error|warning) => message
@param array $fields The fields to be displayed
*/
public function fields ($fields) public function fields ($fields)
{ {
/** Save the fields into the structure.
Available :
- name : name of the field in the HTML page
- label : label written to the describe the field
- [titles] : text written in radio/checkboxes
- [defaults] : default values. Must be array for checkbox/select, and
string for others
- [type] : text, password, hidden, checkbox, select, radio, submit
text by default
- [multiple] : Multiple selection are possible (if the type supports it)
- [group] : define a fieldset and define the title with groupe name
Warning : all the elements of the same group must be
consecutive !
- [readonly] : put a read-only flag on the field (the user see it but
can't interract on it. The value will be sent to next
page
- [verify] : Tests to verify with error priority and associated
message (%s is replaced by field selected value). Order
test from main tests to minor tests.
\$tmpfield can be used as a copy of the current field,
to check the defaults per example
- [error] : array containing (error|warning) => message
*/
$this->fields = $fields; $this->fields = $fields;
} }
/** Return TRUE if the value associated to a field is correct. Return an
array with a severity and a message to explain why a field is not
correct.
Fields can be an array with just one element, then only this element is
checked
@param array $fieldsVerify The fields to verify
@param array|null $valuesVerify The values of the fields to verify
*/
public function verify (&$fieldsVerify, $valuesVerify = NULL) public function verify (&$fieldsVerify, $valuesVerify = NULL)
{ {
/** Return TRUE if the value associated to a field is correct. Return an
array with a severity and a message to explain why a field is not
correct.
Fields can be an array with just one element, then only this element is
checked */
$ret = array (); $ret = array ();
if ($this->debug) if ($this->debug)
echo "<pre>"; echo "<pre>";
@@ -90,12 +105,15 @@ class form
return $ret; return $ret;
} }
/** Return the fields in HTML code. If $values is provided, use it in place
of default values. In case of select boxes, $values are the selected
elements
$method is the method written in method field of <form>
@param string|null $method The method to use to transmit the form (POST,
GET)
@param array|null $values The default values of the fields */
public function printHTML ($method = 'post', $values = NULL) public function printHTML ($method = 'post', $values = NULL)
{ {
/** Return the fields in HTML code. If $values is provided, use it in place
of default values. In case of select boxes, $values are the selected
elements
$method is the method written in method field of <form> */
// TODO : textarea, file // TODO : textarea, file
$res = ""; $res = "";
$res = "<form action='#' method='$method'"; $res = "<form action='#' method='$method'";
@@ -386,18 +404,33 @@ class form
} }
} }
/** the definition of a formfield */
class formfield class formfield
{ {
/** The name of the field */
public $name; public $name;
/** The label of the field */
public $label; public $label;
/** The titles of the field */
public $titles; public $titles;
/** The defaults values of the field */
public $defaults; public $defaults;
/** The type of the field (text, password, checkbox, select)*/
public $type; public $type;
/** The multiplicity of selection of the field (available in select only)*/
public $multiple; public $multiple;
/** The name of group for the fields */
public $group; public $group;
/** The read-only feature of the field */
public $readonly; public $readonly;
/** The fonction used to verify the field by AJAX before submitting and
by PHP after submission*/
public $verify; public $verify;
/** The statut of error of the field */
public $error; public $error;
/** When adding a field, the name and the label are the minimum mandatory
@param string $name Name of the field
@param string $label Label of the field */
function __construct ($name, $label) function __construct ($name, $label)
{ {
$this->name = $name; $this->name = $name;

View File

@@ -1,4 +1,10 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** HTTP Helper : understand the best choices provided by browser, the HTTP
codes */
class http class http
{ {
/** Choose the best choice from user choices. /** Choose the best choice from user choices.
@@ -9,7 +15,9 @@ class http
If available is empty, then return the best priority defined by user, If available is empty, then return the best priority defined by user,
and throw an exception if nothing is provided for by the user. and throw an exception if nothing is provided for by the user.
If nothing match, return $default If nothing match, return $default
*/ @param string $uservar The parameter provided by the user
@param array|null $available The list of available choices in the soft
@param string|null $default The choice if nothing match */
function bestChoice ($uservar, $available=array(), $default=FALSE) function bestChoice ($uservar, $available=array(), $default=FALSE)
{ {
$uservar = str_replace (" ", "", $uservar); $uservar = str_replace (" ", "", $uservar);
@@ -53,7 +61,8 @@ class http
return $default; return $default;
} }
/** Return the associated text for a HTTP code */ /** Return the associated text for a HTTP code
@param integer $code The HTTP code to translate in text */
function codetext ($code) function codetext ($code)
{ {
switch ($code) switch ($code)

View File

@@ -1,4 +1,10 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** The logger class permit to log the informations from the soft
It allow to debug too */
class logger class logger
{ {
/* The logger class can be used with : /* The logger class can be used with :
@@ -10,16 +16,23 @@ class logger
$d->logwrite ("Super log DEBUG", $d::DEBUG); $d->logwrite ("Super log DEBUG", $d::DEBUG);
$d->logwrite ("Super log NOTICE", $d::NOTICE); */ $d->logwrite ("Super log NOTICE", $d::NOTICE); */
// TODO : Add SQL support // TODO : Add SQL support
public $logtype = "display"; // display, file, syslog /** The method to log.
// can be merged with a pipe : "display|syslog" Can be display, file, syslog
Can be merged with a pipe : "display|syslog"*/
public $logtype = "display";
/** For logtype=file, the filename to use */
public $logfile = FALSE; public $logfile = FALSE;
/** Timezone use to save the logs */
public $timezone = "UTC"; public $timezone = "UTC";
/** Minimum log level in the logs */
public $loglevelmin = LOG_NOTICE; public $loglevelmin = LOG_NOTICE;
// See http://fr2.php.net/manual/en/function.openlog.php for $syslogFacility /** In Syslog mode, the facility to use
See http://fr2.php.net/manual/en/function.openlog.php for $syslogFacility */
public $syslogFacility = LOG_USER; public $syslogFacility = LOG_USER;
/** In Syslog, prefix the log by the text */
public $syslogPrefix = FALSE; public $syslogPrefix = FALSE;
/* Priorities : /** The priorities which can be used in the priorities
LOG_EMERG system is unusable LOG_EMERG system is unusable
LOG_ALERT action must be taken immediately LOG_ALERT action must be taken immediately
LOG_CRIT critical conditions LOG_CRIT critical conditions
@@ -37,7 +50,9 @@ class logger
LOG_INFO => "INFO", LOG_INFO => "INFO",
LOG_DEBUG => "DEBUG"); LOG_DEBUG => "DEBUG");
/** Store a new message log in the log manager defined by $logtype */ /** Store a new message log in the log manager defined by $logtype
@param string $message Message to log
@param integer|null $priority Priority to use */
public function log ($message, $priority=LOG_NOTICE) public function log ($message, $priority=LOG_NOTICE)
{ {
if ($this->loglevelmin < $priority) if ($this->loglevelmin < $priority)
@@ -53,7 +68,9 @@ class logger
$this->logsyslog ($message, $priority); $this->logsyslog ($message, $priority);
} }
/** Log $message on file */ /** Log $message on file
@param string $message Message to log
@param integer|null $priority Priority to use */
private function logfile ($message, $priority) private function logfile ($message, $priority)
{ {
if ($this->logfile === FALSE) if ($this->logfile === FALSE)
@@ -86,8 +103,9 @@ class logger
file_put_contents ($this->logfile, $message, FILE_APPEND); file_put_contents ($this->logfile, $message, FILE_APPEND);
} }
/** Log $message on screen with adding date. Add the HTML flags if not in CLI /** Log $message on screen with adding date. Add the HTML flags if not in CLI.
*/ @param string $message Message to log
@param integer|null $priority Priority to use */
private function logdisplay ($message, $priority) private function logdisplay ($message, $priority)
{ {
if (php_sapi_name () !== "cli") if (php_sapi_name () !== "cli")
@@ -101,7 +119,9 @@ class logger
echo "\n"; echo "\n";
} }
/** Log $message on syslog */ /** Log $message on syslog
@param string $message Message to log
@param integer|null $priority Priority to use */
private function logsyslog ($message, $priority) private function logsyslog ($message, $priority)
{ {
openlog ($this->syslogPrefix, NULL, $this->syslogFacility); openlog ($this->syslogPrefix, NULL, $this->syslogFacility);

View File

@@ -1,7 +1,13 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Class used to display datas */ /** Class used to display datas */
class output class output
{ {
/** Class used to display datas
@param mixed $data The data to be displayed */
public function out ($data) public function out ($data)
{ {
throw new Exception ("No type of output selected"); throw new Exception ("No type of output selected");

View File

@@ -1,11 +1,23 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("output.php"); require_once ("output.php");
/** Display in CSV the datas provided */
class outputcsv extends output class outputcsv extends output
{ {
public function out ($data) /** Don't allow to output in CSV if the functions are not available in PHP */
function __construct ()
{ {
if (!function_exists ("fputcsv")) if (!function_exists ("fputcsv"))
throw new Exception ("CSV support not available in PHP !", 500); throw new Exception ("CSV support not available in PHP !", 500);
}
/** Display in CSV the datas provided
@param mixed $data The data to be displayed */
public function out ($data)
{
if (!is_array ($data)) if (!is_array ($data))
$data = array ($data); $data = array ($data);
@header("Cache-Control: no-store, no-cache, must-revalidate"); @header("Cache-Control: no-store, no-cache, must-revalidate");

View File

@@ -1,11 +1,22 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("output.php"); require_once ("output.php");
/** Display in HTML the datas provided, with the layout support */
class outputhtml extends output class outputhtml extends output
{ {
/** Data is printed by viewClass->viewmethod, in the middle of $layout /** Data is printed by viewClass->viewmethod, in the middle of $layout
title is put in the title of the HTML page title is put in the title of the HTML page
$replacement modify the result (it can do title too : $replacement modify the result (it can do title too :
array ("{title}"=>"title to display") */ array ("{title}"=>"title to display")
@param mixed $data Data to display on the page
@param string|null $title Title to put on head of page
@param string|null $viewClass Class in views to use to display
@param string|null $viewMethod Method in the class in views
@param string|null $layout Layout file in views
@param array|null $replacement Replace the {key}=>value */
public function out ($data, $title = FALSE, public function out ($data, $title = FALSE,
$viewClass = FALSE, $viewMethod = FALSE, $viewClass = FALSE, $viewMethod = FALSE,
$layout = FALSE, $replacement = array()) $layout = FALSE, $replacement = array())

View File

@@ -1,12 +1,24 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("output.php"); require_once ("output.php");
/** Display in JSOn the datas provided */
class outputjson extends output class outputjson extends output
{ {
public function out ($data) /** Don't allow to output in JSON if the functions are not available in PHP */
function __construct ()
{ {
if (!function_exists ("json_encode")) if (!function_exists ("json_encode"))
throw new Exception ("JSON support not available in PHP ! apt-get ". throw new Exception ("JSON support not available in PHP ! apt-get ".
"install php5-json", 500); "install php5-json", 500);
}
/** Display in JSOn the datas provided
@param mixed $data The data to be displayed */
public function out ($data)
{
@header("Cache-Control: no-store, no-cache, must-revalidate"); @header("Cache-Control: no-store, no-cache, must-revalidate");
@header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); @header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
@header('Last-Modified: '.gmdate ('D, d M Y H:i:s').' GMT'); @header('Last-Modified: '.gmdate ('D, d M Y H:i:s').' GMT');

View File

@@ -1,7 +1,14 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("output.php"); require_once ("output.php");
/** Display in Text the datas provided */
class outputtxt extends output class outputtxt extends output
{ {
/** Display in Text the datas provided
@param mixed $data The data to be displayed */
public function out ($data) public function out ($data)
{ {
@header("Cache-Control: no-store, no-cache, must-revalidate"); @header("Cache-Control: no-store, no-cache, must-revalidate");

View File

@@ -1,7 +1,14 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("output.php"); require_once ("output.php");
/** Display in XML the datas provided */
class outputxml extends output class outputxml extends output
{ {
/** Display in XML the datas provided
@param mixed $data The data to be displayed */
public function out ($data) public function out ($data)
{ {
@header("Cache-Control: no-store, no-cache, must-revalidate"); @header("Cache-Control: no-store, no-cache, must-revalidate");
@@ -19,7 +26,9 @@ class outputxml extends output
print $xml->asXML(); print $xml->asXML();
} }
// function defination to convert array to xml /** function defination to convert array to xml
@param mixed $data The data to be converted
@param string $xml The actual state of the XML file */
private function array_to_xml ($data, &$xml) private function array_to_xml ($data, &$xml)
{ {
foreach($data as $key => $value) foreach($data as $key => $value)

7
phpdoc.xml Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<phpdoc>
<title>DomFramework : The light framework</title>
<files>
<ignore>/test/</ignore>
</files>
</phpdoc>

View File

@@ -1,9 +1,17 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Display the datas in HTML with a FLASH method to display the errors */
class renderer class renderer
{ {
/** The result in construction */
public $result = NULL; public $result = NULL;
/** The output type */
public $output = NULL; public $output = NULL;
public $title = " "; // Title by default : space to be compatible with HTML5 /** Title by default : space to be compatible with HTML5 */
public $title = " ";
/** Filename of class containing the presentation layer */ /** Filename of class containing the presentation layer */
public $viewClass = FALSE; public $viewClass = FALSE;
/** Method apply to class object to display the $result */ /** Method apply to class object to display the $result */
@@ -28,8 +36,9 @@ class renderer
/** Add a flash message to the user, on the next HTML page. /** Add a flash message to the user, on the next HTML page.
In CLI, display the message immediately. In CLI, display the message immediately.
Message must be translated before sending to the function Message must be translated before sending to the function
Priority is 1:success, 2:info, 3:warning, 4:error @param integer|string $priority Priority 1:success, 2:info, 3:warning,
or textual : SUCCESS, INFO, WARNING, ERROR */ 4:error or textual : SUCCESS, INFO, WARNING, ERROR
@param string $message Message to display */
static public function flash ($priority, $message) static public function flash ($priority, $message)
{ {
if (php_sapi_name () === "cli") if (php_sapi_name () === "cli")

View File

@@ -1,12 +1,20 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
require_once ("domframework/http.php"); require_once ("domframework/http.php");
/** Allow to manage the REST protocol by using the users output types */
class rest class rest
{ {
/** Allowed types by default */
public $allowedtypes = array ("json", "xml", "txt", "csv"); public $allowedtypes = array ("json", "xml", "txt", "csv");
/** Display the message (which can be a string, an array, an integer...) /** Display the message (which can be a string, an array, an integer...)
into the type asked by the client if it is allowed. into the type asked by the client if it is allowed.
By default, the JSON type is used */ By default, the JSON type is used
@param string $message Message to be displayed by the output type
@param integer $code HTTP code to use */
function display ($message, $code=200) function display ($message, $code=200)
{ {
$http = new http; $http = new http;

View File

@@ -1,19 +1,28 @@
<?php <?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
error_reporting (E_ALL); error_reporting (E_ALL);
/** The routing module, base of the DomFramework */
class route class route
{ {
/** The baseURL of the site */
private $baseURL = ""; private $baseURL = "";
/** The baseURL of the module in the site */
private $baseURLmodule = ""; private $baseURLmodule = "";
/** The method used to ask the page */
public $method = ""; public $method = "";
/** The module name */
public $module = NULL; public $module = NULL;
public $debug=0; // 0:NoDebug, 1:routing, 2:more debug (developpement) /** The debug mode :
0:NoDebug, 1:routing, 2:more debug (developpement)*/
public $debug=0;
//public $defaultOutput = "html"; // Default renderer : html //public $defaultOutput = "html"; // Default renderer : html
function __construct ()
{
}
/** Return the baseURL of the site /** Return the baseURL of the site
Always finish with a slash */ Always finish with a slash
@param string|null $module The module name (if thereis one) */
function baseURL ($module = FALSE) function baseURL ($module = FALSE)
{ {
if ($this->module === NULL) if ($this->module === NULL)
@@ -51,6 +60,8 @@ class route
return $this->baseURLmodule; return $this->baseURLmodule;
} }
/** Define the base URL of the site
@param string $baseURL The base URL of the site */
function baseURLset ($baseURL) function baseURLset ($baseURL)
{ {
$this->baseURL = $baseURL; $this->baseURL = $baseURL;
@@ -73,7 +84,9 @@ class route
/** Do all the routing with redirections /** Do all the routing with redirections
$destURL can be absolute or relative $destURL can be absolute or relative
If module is set, the site is modular and a directory is named with module If module is set, the site is modular and a directory is named with module
name */ name
@param string $destURL Do a redirection of the HTTP page
@param string $module The module name */
function redirect ($destURL, $module) function redirect ($destURL, $module)
{ {
if (php_sapi_name () === "cli") if (php_sapi_name () === "cli")
@@ -424,7 +437,9 @@ class route
function is called. function is called.
Ex. : $app->get('/hello/{name}', function ($name) { Ex. : $app->get('/hello/{name}', function ($name) {
echo "Hello, $name"; echo "Hello, $name";
}); */ });
@param string $route Route to check with the URL
@param function $function Function to be executed if the route match */
public function get ($route, $function) public function get ($route, $function)
{ {
if ($this->debug) if ($this->debug)
@@ -443,7 +458,9 @@ class route
function is called. function is called.
Ex. : $app->get('/hello/{name}', function ($name) { Ex. : $app->get('/hello/{name}', function ($name) {
echo "Hello, $name"; echo "Hello, $name";
}); */ });
@param string $route Route to check with the URL
@param function $function Function to be executed if the route match */
public function post ($route, $function) public function post ($route, $function)
{ {
if ($this->debug) if ($this->debug)
@@ -462,7 +479,9 @@ class route
function is called. function is called.
Ex. : $app->get('/hello/{name}', function ($name) { Ex. : $app->get('/hello/{name}', function ($name) {
echo "Hello, $name"; echo "Hello, $name";
}); */ });
@param string $route Route to check with the URL
@param function $function Function to be executed if the route match */
public function put ($route, $function) public function put ($route, $function)
{ {
if ($this->debug) if ($this->debug)
@@ -481,7 +500,9 @@ class route
function is called. function is called.
Ex. : $app->get('/hello/{name}', function ($name) { Ex. : $app->get('/hello/{name}', function ($name) {
echo "Hello, $name"; echo "Hello, $name";
}); */ });
@param string $route Route to check with the URL
@param function $function Function to be executed if the route match */
public function delete ($route, $function) public function delete ($route, $function)
{ {
if ($this->debug) if ($this->debug)
@@ -497,7 +518,9 @@ class route
} }
/** Do the mapping between the url and the route : call the function if /** Do the mapping between the url and the route : call the function if
thereis a match */ thereis a match
@param string $route Route to check with the URL
@param function $function Function to be executed if the route match */
public function map ($route, $function) public function map ($route, $function)
{ {
$url = substr ($this->requestURL (), strlen ($this->baseURLmodule ())); $url = substr ($this->requestURL (), strlen ($this->baseURLmodule ()));