DomFramework 0.50

The DomFramework allow the developpers to create easily some PHP applications. Provide authentication, abstraction to databases, and much more !

Tags php web interface framework authentication routing database
License BSDL
State testing

Recent Releases

0.5013 Mar 2018 08:02 minor release: FEATURES ADDED: * ipaddresses : add validCIDR, validIPv4CIDR, validIPv6CIDR to check the CIDR * ipaddresses : add validIPAddressWithCIDR, validIPAddressIPv4WithCIDR and validIPAddressIPv6WithCIDR * ipaddresses : add compressIP to compress an IPv6 address (remove the 0 and add the :: if possible) * ipaddresses : add networkFirstIP and networkLastIP to get the first and last address of a network. In IPv4, the first address is network address and the last address is broadcast address. * ipaddresses : add ipInNetwork to know if the provided ip address is in or outside the network and cidr provided * ipaddresses : Manage the IPv4 blocks in IPv6 : ::ffff: * tcpserver: allow the loop to be interrupted by a signal * tcpclient : generate an exception if the DNS has an error * tcpclient: Get the A and AAAA records before querying the CNAME only if needed (speedup if the CNAME DNS can not be found and hang the request) * tcpclient : Allow one to set the SSL options if needed * tcpclient : use the TLS1.1 or TLS1.2 and no more the TLS1.0 * password : Add password management and the associated tests * cli : Add controllersDir and modelsDir methods to set multiple paths for controllers and models CORRECTED BUGS: * tcpclient: test correctely the certificate of the server by setting correctely the name of the peer * tcpclient: enable crypto : raise an exception in case of error * tcpserver: do not generate a warning on screen if the client reject the crypto enabling * logger : to file, add a LOCK_EX to be sure that each message is finished to be write before starting a new one * daemon : do not start the daemon if the PID file is finished by a n * outputhtml : allow the class to be defined by an autoloader instead of hard wire the class files * authentication : use the ratelimit dir /tmp/ratelimit to not try to remove all the files in /tmp
0.4905 Jan 2018 10:12 minor release: FEATURES ADDED: * route : Add the proxy support for baseURL and requestURL * dblayeroo: allow the foreign keys to be a NOT NULL field, then not be tested * dblayeroo: the post execute select must not convert a NULL to INT if a column definition is INTEGER * Add fork support * Add daemon support * Add TCP client support. Allow one to connect easily and get data in SSL or unencrypted mode to a TCP server * Add TCP server support. Allow one to create a TCP server with or without SSL encryption CORRECTED BUGS: * form: select field : allow the provided value to be an integer and work correctely in comparison with the string defaults values
0.4726 Sep 2017 12:31 minor release: FEATURES ADDED: * config: allow the DocComment to start with star * config: Manage the configuration in update too. The params must be defined starting by slash * form: raise an exception if a default value is not a string
0.4518 Sep 2017 11:41 minor release: FEATURES ADDED: * form: if there is errors on hidden fields, display them as text with read-only. Like this, the error message is correctely displayed to the end user * fts: Add the simple-quote as separator too CORRECTED BUGS: * bash-completion: directory change for Debian etc/bash_completion.d/ - usr/share/bash-completion/completions (see also * dblayeroo: insert return the primary key if the field is not an autoincrement or if the value is not null * dblayer: insert return the primary key if the field is not an autoincrement or if the value is not null * cli: don't display the list of methods in Stretch * Debian package: package-uses-deprecated-debhelper-compat-version 5 (go to 9) * Debian package: ancient-standards-version 3.9.6 (current is 3.9.8) * dblayeroo : change the Exception to this- DBException * dblayeroo: GROUP BY was incorrect when there was a join and only one local grouped function: do not call the displayed field on the join objects * dblayeroo: Manage correctely the DISTINCT type of fields
0.4404 Aug 2017 09:20 minor release: CORRECTED BUGS: * dblayeroo: update check the unique columns. Allow string with comma separated values or array * dblayeroo: manage correctely the PGSQL string_agg (instead of GROUP_CONCAT) * dblayeroo: Manage correctely the Aliases (do not emit Notice in execute) * dblayeroo: do not allow an array of array to be provided to displayAdd * ratelimitfile: do a clean of the expired entries automatically
0.4301 Aug 2017 13:45 minor release: FEATURES ADDED: * dblayeroo: add directQuery support * Add sqlMigrate tool CORRECTED BUGS: * dblayeroo: insert/update null are not checked against the field format * dblayeroo: insert/update null are checked against the "NOT NULL" definition except for autoincrement key, which is allowed * verify: quote the regexp before using them
0.4226 Jul 2017 08:39 minor release: CORRECTED BUGS: * form: Block the submit button to not allow Chrome/Edge to submit multiple times in case of multiple clicks on slow server. Bug introduced in 0.41 doesn't work with Chrome: the form is not submitted
0.4126 Jul 2017 07:42 minor release: FEATURES ADDED: * dblayeroo: add and comparisons * dblayeroo: Add DISTINCT feature to displayAdd * dblayeroo: Add IS NOT NULL operator to whereAdd * form: Block the submit button to not allow Chrome/Edge to submit multiple times in case of multiple clicks on slow server CORRECTED BUGS: * getopts: substr in PHP7 has not the same result as PHP5. * Add Exception if MB support is not available in PHP (External module in PHP7) * dblayeroo: whereAdd "IS NULL" : do not add the value as it doesn't exists * dblayeroo: whereAddParenthesisOpen: Add automatically AND before if there is no already defined operator * dblayeroo: in GROUP_CONCAT, allow the Separator to be set (use sqlite syntax, with a comma and the second optional parameter is the separator string) * dblayeroo: MySQL: push the group_concat_max_len to maximum allowed * dblayeroo: Add alias support (AS) to displayAdd * dblayeroo: UPDATE should not verify if the unique are not modified * dblayeroo: Update of multiple not unique fields should not be an exception * dblayeroo: if displayAdd is empty, remove all the previous defined displayed columns
0.4005 Jul 2017 14:22 minor release: FEATURES ADDED: * dblayeroo: supports foreign keys on multiple columns with syntax "col1,col2" CORRECTED BUGS: * dblayeroo: getTableSchema for sqlite if no autoincrement field is defined, the sqlite_sequence table doesn't exists and must not crash the method * dblayeroo: do not remove the foreign objects when using clearRequest method * modelGenerator: use the titles and foreign methods instead of using the properties * mail: Add the headers with r n instead of n * mail: do not use not defined array keys and generate warnings * mail: getDetail subject is now really converted to UTF-8 * mail: mail is now capable to read Mailer-Daemons and extract parts as attachment
0.3914 Jun 2017 11:32 minor release: FEATURES ADDED: * mail: allow 7bit contents * verify: check hashes * convert: ucwords in UTF-8 with delimiter CORRECTED BUGS: * All the require_once are now prefixed by domframework to allow multiple loading of the page (without "Cannot redeclare class output") * Add the require_once ("domframework/XXX.php"); if the class need another class to work * dblayeroo: syntax error in table creation for MySQL and PgSQL if multiple foreign keys are defined * file: glob remove the first char if there is no chroot * mail: add a Return-Path header is done on the first line and the other headers are added at the end of the headers * smtp: if multiple recipients are provided by comma separated string, convert them to array DEPRECATED FEATURE: * verify: obsolete all the methods with underscore
0.3722 May 2017 08:19 minor release: FEATURES ADDED: * Add display backtrace support * verify: add the verification of UUID * verify: Add isAllowedChars to check if a string contains invalid chars * dblayeroo: Add the GROUP BY feature and the function support * Add "modelGenerator" tool to create the model files based on an existing database - roleuser: allow to manage a role associated to a user. The data can be stored in an array (from configuration by example) or in database or both simultaneously CORRECTED BUGS: * verify: integer can be integer * verify: missing "static" on some static methods * smtp: remove the spaces in the FROM and TO addresses (or clean the address if toto is provided) * outputxml: if the provided data are XML, do not change them and just display them with the headers * getopts: manage correctely the parameters if its value is "" (should not be ignored) * dblayeroo: autoincrement fields must be primary too * mail: allow to read bad formed mail without notice * mail: allow header to be set to empty * mail: convert the headers to UTF-8 if the mime encoding is set * mail: Remove the not needed CR in getDetails
0.3609 May 2017 07:07 minor release: FEATURES ADDED: * verify: add the static methods * verify: add the unit tests and the documentation * verify: add the dateSQL check * Add the convert format support with date and ucfirst for utf-8 * Add RSS support * Add getopts support * Add UUID creation feature * dblayeroo: allow to sort the ORDER statements (the first added is the first used) * dblayeroo: allow to sort the Display statements (the first added is the first used) * dblayeroo: Do not allow autoincrement if the field is not integer * dblayeroo: Add a export configuration feature to return an array with all the defined parameters CORRECTED BUGS: * dblayeroo: review the join process and add the unit tests for it * form : If the error is not due to field (it has numerical key, put the focus on the first field (if available) and not on the global error DEPRECATED FEATURE: * dblayeroo: change displayColumns to displayAdd
0.3529 Mar 2017 12:50 minor release: FEATURES ADDED: * authentication : allow logout to provide a url to be displayed after successful logout * color : allow to translate a color in english to RGB or GD color * dblayeroo : add a new dblayer class. More OO, supports more options than dblayer * fts : The Full Text Search module for dummies * route : add the mapRoute function to know the matching route search comparison * dblayer : allow the read order to be written in lowercase too CORRECTED BUGS: * auth : manage correctely the urls with quotes * csrf : manage multiple CSRF tokens in the same PHP call (and provide the same result) : pseudo-singleton * dblayer : the length of the fields must be checked in UTF-8 and not in Latin1 * route : redirect analyzer is not check if the value doesn't exists * route : do not cache the baseURL if the Absolute parameter is set
0.3404 Jan 2017 03:16 minor release: * file : Do not allow the locks to be done if the file to lock doesn't exists * DomCI : remove all the too long lines, the starting tabs, the ending spaces * DomCI : Validate the PHPDoc for all the parameters, methods and classes * smtp : if there is an error with the server, send QUIT and close correctely the connection * authparams : if the email is not provided by Shibboleth, reject the auth instead of having a warning * file : add the methods is_readable, is_writeable, is_executable, glob
0.3317 Nov 2016 07:44 minor release: * file : bug in the rmdir recursive * file : add the filemtime function * mail : allow 120 parts of the mail (allow to add 100 attached files) * mail : if addAttachmentInline, start the HTML to be mail compliant. Raise an exception if the html part is not provided before using getMail (); * mail : change the boundary format to be compatible with Orange Webmail
0.3203 Oct 2016 07:09 minor release: * form : don't force a at the end of the help messages * form : put the focus on first field NOT readonly and NOT hidden * form : display correctely the checkboxes (add label and div='checkbox') * form : manage correctely the checkboxes with values (the values can be defined and set to no "unset") * cli : If the provided argument is -?, display the variable with the phpdoc associated * Remove all the trailling spaces
0.3119 Sep 2016 15:39 minor release: * form : the overwriting of the hidden and read-only fields must be done by value * file : add md5_file and sha1_file support * outputjson : display an error message if the json to display is invalid (binary) * authentication : if there is no lastname/firstname provided, don't generate a warning
0.3005 Sep 2016 16:16 minor release: * Add more debug for authentication * ratelimitfile : raise an exception if the file already exists and is not writeable by the webserver * cli : go to the main directory in the constructor to allow configuration reading * file : copy can copy directory or files * file : if file_exists is used, a missing parent directory doesn't generate an exception * file : add chown, chmod, chgrp support * file : add flags support for file_put_contents * authentication : manage correctely the routes (no trailling slash) * authentication : when debugging, save the logs in file * authhtpasswd : return the only detail available - email * auth : refresh the CSS to be more user friendly * auth : better error message display (red, with round corners) * route requestURL (true) in subdir invalid : http://localhostiptables/ipv4/filter/INPUT (missing directory) * form- values () : must overwrite readonly and hidden fields (the user can modify them, but it is not allowed)
0.2902 Aug 2016 17:57 minor release: * file : add scandirNotSorted function * cli : change the directory as soon as the cli object is created, allow to check if a relative path is available in next line * authentication : allow to define a specific logging function instead using the trigger_error
0.2828 Jul 2016 14:36 minor release: * dblayer : check if the table name is defined before using it * dblayer : check if the PDO Driver is installed in PHP before using it * dblayer : allow read with null value * dblayer : delete : raise a valid exception if the delete can't be done * dblayer : return all the verify errors in the same shot * dblayer : allow to have external verifyOne and verifyAll functions * dblayer : allow to define the hook functions in the specification of the layer. Can be external ones. * smtp : manage the dot on first column : double it before sending the email * mail : add setSubject method * mail : cut the long attachment filenames in headers with the correct encoding * mail : manage correctely the double-quotes in filenames * language : Add a working cache management. No need to restart Apache after upgrade of .mo files if a cache directory is available * config : allow the defaults vals to be returned in array of arrays * authsql : missing fields in db connection * file : add rename and copy functions
0.2728 Jun 2016 18:56 minor release: * outputhtml : add a timestamp after the internal resources when creating the page. Like this, when updating a script, image or css file, it is updated by the client automatically (the browser don't use its cache) * form : if a convertDate field provided is empty, do no generate an error * form : Allow to define a class text to form object * csrf : add the exceptions code to Exceptions * csrf : Allow to get the CSRF token from the CSRF or FORM classes
0.407 Apr 2016 15:05 minor release: * markdown: BUG for == titles / -- titles * markdown : BUG : * * * - - - shoud be SEPARATORS * markdown : BUG : the mails/url are not working caused by htmlentities * markdown : BUG : bad closing in list * markdown : BUG : - line1 line2 : should be the continuity of , not * markdown : BUG : the ### TITLEx doesn't work caused by the search empty line at the ned and at the start of the regex
0.2107 Apr 2016 13:45 minor release: * language : correct the layout by the associated language * authzgroups : if the provided object start by a slash, don't add it. * authzgroups : add a local cache in the object, for the userrightsget, to not access to the database each time * dblayer : add the hookpreread and the hookpostread * dblayerauthzgroups : add the support to dblayer with authzgroups rights * dblayer : define the setters of properties to allow chained - * dblayerauthzgroups : define the setters of properties to allow chained - * dblayer : If provided select is not an array of array, throw an exception * dblayer : if the verify return an array with the field in key, the exception of update is now working * Add users and userssql * authhtpasswd : Add support to authenticate the user from a .htpasswd file, created by 'htpasswd' command. Allow to add easily a new user if the admin password is lost * cli : add support to namespaces * cli : don't display the protected/private methods : can't be called * cli-completion : complete rewrite of the bash completion help * cli : if no controller or models exists, return nothing in listonly mode (bash_completion)
0.2207 Apr 2016 12:05 minor release: * dblayerauthzgroups : allow the user to be provided by auth object directely * route : allow the routing to be chained : return this each time * route : multi now return this to be chainnable * Add imap and authimap support * dblayer : support of null data was not working in insert/update * form : add the placeholder support
0.2307 Apr 2016 10:25 minor release: * Add inifile support * authzgroups : Raise an exception if there is a SQL error * authzgroups : the 'right' alias is now between double-quotes to be compatible with MySQL * language : allow to force the language from anoter source than the cookie and the browser params * Correct the syntax of data * Correct the syntax of information * route : Pass to renderer the information concerning the routing and the exception * form : add the javascript to focus on the first field if there is no error, or on the first error when there is one * Check if all the translations are done by dgettext('domframework', * ipaddresses : Add support to calculations on IP addresses * route : ratelimit the errors to not allow the hackers to brute force the backend * route : do not exit in error part to allow the unit tests * route : update the unit tests * BUG Markdown : if an automatic URL have two underscores, the work and the URL is incorrect * dblayer : removing the unused create function (later than 0.8)
0.2403 Apr 2016 13:03 minor feature: * Add DBJSON support. DBJSON is a NoSQL database, writing the data in one file. There is no optimizations, so it is not fast, but it works on all the PHP sites with filesystem access * phpunit : use assertSame in place of assertEquals * authhtpasswd : Check if the first char exists before testing it * inifile : check if the integers are correctely stored * markdown : Example of cron configuration * * * * * www-data /usr/share with 4 beginning spaces is not OK (remove all the stars and put a bullet) The lists (numbered or not) must start on first char * config : allow to have the defaults params in - get() in case of array without defined key