Recent Releases

0.5117 Jul 2018 03:17 minor release: FEATURES ADDED: * form : supports multiple forms on the same page * form : add setters for fields * form : The label is now optional * form : add logging support for exceptions * form : Add redirectIfError method to simplify the code in index files form = new form (); values = form- values (); errors = spaceObj- verify ( values); form- redirectIfError ( values, errors, route, "/admin/space/"); spaceuuid = spaceObj- spaceCreateConceal ( values "spacename" ); route- redirect ("/admin/space/"); * form: add 'file' type to upload * dblayeroo : Add support to natural sort in ORDER * dblayeroo : allow one to orderAdd on aliases too * dblayeroo : listTables : sort the tables. Do not return the sqlite_sequence table * file : add fileinfoMimeType and filesize * console : allow one to print text and get textual data from user. Manage correctely the Ctrl+W, Ctrl+U, Ctrl+L, Backspace and Delete keys, Begin and End keys and the cursor move (with or without Ctrl). Manage the history and the autocompletion with key up and down. Allow one to hide the requested text, like password. Supports correctely the UTF-8 chars. Allow one to autocomplete with value+help message, or value only Manage correctely the window size When moving to an old history, keep the position of the cursor if the user come back on the tmp stored entry Add color support Add bold and underline text support * authentication: manage the session only if the authentication page is required. Do not set a session cookie if the user don't need to be authenticated * authentication : Add X-Frame-Options "SAMEORIGIN" to authentication page * language : do not set the cookie if it is not needed. Update it if it is valid * route : add setter/getter for debug param CORRECTED BUGS: * MAX(field) only - SQL crash with GROUPBY without parameter * dblayeroo : do not generate an error if
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:192.168.1.2 * 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.4830 Oct 2017 09:42 minor release: FEATURES ADDED: * Add the PHP7 Support to Debian
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.4618 Sep 2017 12:43 minor release: * dblayeroo : bug in group by feature
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 https://bugs.debian.org/776954) * 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.3802 Jun 2017 08:32 minor release: FEATURES ADDED: * Add the documentation on the Web site CORRECTED BUGS: * dblayeroo: the connect process need now the database name and generate an Exception if not provided in the DSN * modelGenerator: catch the Database connection exception correctely * route: catch the regex syntax error correctely * route: catch the exception generated by route itself and display the error page * smtp: throw an exception if the TO is not defined * file: update glob function to clean correctely in relative mode * file: add unit tests for glob function * mail: notice if malformed mail is corrected * markdown: allow to escape a part of string with backslash to not apply the markdown translation * markdown: manage correctely the backslashes and the emphasis and the HR separators
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.2626 Jun 2016 15:47 minor release: * smtp : add SMTP support to send emails (with TLS, authentication PLAIN and LOGIN, debug, non standard port, STARTTLS) * mail : Complete rewrite. Allow to read an existing mail * cli : allow the controllers to be optional * cli : allow the models or controllers to be optional if the name of the class is unique * cli : add a "-q" option to not display the return code * BUG dblayer : Can't read with OR if there is multiple time the same field with different values * cli : display the complete string instead of truncate it * form : add the conversion format for dates
0.2501 May 2016 19:51 minor release: * Update Unit tests to not depend of configuration * Update Unit tests to have a distinct database file by test file * file : all the management of the files, with integrated filesystem checks, and virtual chroot support * form : fieldwidth is now functionnal * form : add the methods getOldValues, getOldErrors, saveValuesErrors and saveValuesErrorsReset to simplify the codes. In views : form = new orm (); values = array (); errors = array (); // If there is saved values, use them, else return the provided values values = form- getOldValues ( values); errors = form- getOldErrors ( errors); In index.php : form = new orm (); values = form- values (); errors = ipsetsObj- verify ( values); form- saveValuesErrors ( values, errors); if (count ( errors)) route- redirect ("/ipsets/add"); ipsetsObj- createSet ( values "setname" , values "typename" ); // If there is no error (catched by exception), clear the form for next // time form- saveValuesErrorsReset (); route- redirect ("/ipsets", ""); * route : redirect without module : default = ""; * route : allow to define a viewErrorClass and viewErrorMethod to catch the exceptions raised by the code. Simplfy th e index.php : route- viewClass = " views ipsets"; route- viewErrorMethod = "error"; ipsetsObj = new controllers ipsets (); form = new form (); values = form- values (); errors = ipsetsObj- verify ( values); form- redirectIfErrors ( values, errors, "/ipsets/add"); ipsetsObj- createSet ( values "setname" , values "typename" ); route- redirect ("/ipsets", ""); * form : if the provided error for a field is not an array, use the default error class and use the value as message * route : if there is an error with the ratelimiter (directory not writeable...), overload the exception by the ratelimiter exception * auth : Add Shibboleth support * route : store in session the last valid get page to allow to return with small method : route- lastValidGe
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
0.2303 Feb 2016 17:00 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.2213 Nov 2015 17:00 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.2114 Oct 2015 17:00 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.2014 Aug 2015 17:00 minor release: * logger : remove the internal functions (without file and line) from the logs * start : move the language selector to be available in the authentication page * logger : add a to messages displayed on screen to allow the traces to be readable * authentication : better error management in configuration (Exception in case of errors). * authentication : allow multiple source of authentication for the same authMethod (multiple LDAP servers by example). Conservative, allow the old authMethod to be used when only one entry is available * logger : allow to store the logs in session (to be readable in debug) * authzgroups : add the functions to check the accessRight, accessWrite, accessReadOnly * dblayer : add a Singleton to not reconnect each time we need to access the same database. * dblayer : add a method to disconnect the database engine * dblayer : add the transactions methods, linke in PDO * dblayer : remove the extension of PDO
0.1808 Jun 2015 17:00 minor release: * config : return an Exception code when there is an error * config : allow the configuration file to be setted in the object and used instead of defined one * logger : add stderr support * BUG form : allow the values and the errors to be displayed (introduced in 0.17 version)
0.1713 May 2015 17:00 minor release: * route : the redirect can be done outside the site, with a warning * logger : allow the types of log to be a string or already an array * config : add the '@prefix' support * form : add the cols,rows for fields * form : the fields are now extendable (to add new types by extends the class) * outputtxt : allow the titles to be longer than the datas, without error
0.1127 Jan 2015 17:00 minor release: * BUG dblayer : check if the unique multiple values are not used before updating * BUG Markdown : Two automatic links on the same line are not correct, the regex must be Ungreedy * BUG route : if using modules, the redirect was wrong * form : the submit text can be defined in the label too * form : add the hidden support to the fields * BUG dblayer : Add support to ordering if column name is 'group' by using the separator (need by SQLite) * HTTP authentication : return an exception with 401 to allow the browser to authenticate. Allow the REST API to work by catching the error instead of die
0.1227 Jan 2015 10:51 minor release: * BUG locale : Missing all the locales in Debian package
0.1026 Sep 2014 15:30 minor release: * BUG : dblayer : don't raise an exception when re-inserting unique record * dblayer : add more unit tests * route : In case of exception, a HTML page is sent. If REST, it should be a simple string, without presentation (can be done by using specifig error pages)
0.810 Sep 2014 17:00 minor release: * renderer : Add variables support to layout. All variable defined in variable is available in XXX in the layout file. It can be used with php structures * cli : do a bash-completion module to find the classes and the methods * cli : add a trigger_error catch (display the errors in stderr) * route : add permanent redirect support * Markdown : add image support * Markdown : Add more tests * BUG : Markdown : remove http:// mandatory in links : can be relative ! * BUG : Markdown : carriage return : missing space : see testCarriageReturn1 * BUG : Markdown : emphasis : see testUnderscore * BUG : Markdown : the mailto links don't have the // * BUG : Markdown : Correct the OL/UL imbrication * BUG : Markdown : error ### l'utilisateur - should be title h3
0.708 Aug 2014 17:00 minor release: * dblayer : Add dropTable support * Add multi-language support * The exception captured by routing is now a valid HTML page
0.601 Aug 2014 07:12 minor release: * BUG : cacheoutput : If the TTL is 0, remove the caching functionality * dblayer : Add the prefix support in tables name * dblayer : Check if the provided datas are not too long before saving them * dblayer : Check if the datas are in the ANSI SQL format (date datetime) * BUG dblayer : The missing foreign keys in update should not be tested (introduced in 0.5 version) * Add version support
0.427 Jun 2014 17:00 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.213 Jun 2014 10:15 minor release: * dbLayer : If SQLite, don't allow to use database if it is not writeable * dbLayer : Bug if update in unique field verification * dbLayer : Allow creation of tables from a definition (fields, uniques entries, foreign keys) * BUG cli : Variable used without initialisation
0.103 Jun 2014 17:00 minor release: * Debian Package