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:
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Autoload
|
/** Autoload */
|
||||||
spl_autoload_register(function ($class) {
|
spl_autoload_register(function ($class) {
|
||||||
@include $class . '.php';
|
@include $class . '.php';
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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]");
|
||||||
|
|||||||
17
auth.php
17
auth.php
@@ -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);
|
||||||
|
|||||||
24
authldap.php
24
authldap.php
@@ -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))
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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"),
|
||||||
|
|||||||
@@ -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
72
cli.php
@@ -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;
|
||||||
|
|||||||
26
config.php
26
config.php
@@ -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)
|
||||||
|
|||||||
43
dblayer.php
43
dblayer.php
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
105
form.php
@@ -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;
|
||||||
|
|||||||
13
http.php
13
http.php
@@ -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)
|
||||||
|
|||||||
38
logger.php
38
logger.php
@@ -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);
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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
7
phpdoc.xml
Normal 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>
|
||||||
15
renderer.php
15
renderer.php
@@ -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")
|
||||||
|
|||||||
10
rest.php
10
rest.php
@@ -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;
|
||||||
|
|||||||
45
route.php
45
route.php
@@ -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 ()));
|
||||||
|
|||||||
Reference in New Issue
Block a user