Skip to content

Release Notes: 3.0.0

Sithu edited this page Dec 12, 2021 · 13 revisions

Download

Download at http://www.phplucidframe.com/downloads

What's New in Release 3.0

  • Implement PDO integration in replacement of mysqli
  • Add a new validation rule unique.
  • Enable layout mode ($lc_layoutMode) by default
  • Add global View object to manage view and layout rendering; it is available via _app('view').
  • Ability to include block view (nested view) - _app('view')->block('filename').
  • Ability to include head styles using _app('view')->headStyle() and head scripts using _app('view')->headScript() in view and layout. Check the documentation.
  • Make index.php optional when there is view.php in a directory. Check the documentation.
  • Make the connected database object is available via _app('db').
  • Make page title accessible via _app('title') and assignable such as _app('title', 'Example title')
  • Change $lc_auth structure with $lc_auth['permissions'] ($lc_auth['block'] removed) in /inc/config.php. Check the documentation.
  • Replace auth_access($perm) with auth_can($perm).
  • Add an option setUploadAsOriginalFileName(true) to AsynFileUploader for ability to upload file as original file name
  • Remove $_auth global object and make it available via _app('auth').
  • Add token property to the session object accessible via _app('auth')->token
  • Add a new option entity (a comma-separated list of entity names) to db:seed command, e.g., php lucidframe db:seed --entity="posts,tags"
  • Use the keywords $and, $or, $not for AND, OR, NOT clauses for QueryBuilder.
  • Add apigen to composer as dev package
  • Add on() method to middleware for route registration. Check the documentation.
  • Add third-party directory for autoloader.
  • Change logic for autoload helpers by priority - (1) lib, (2) app, (3) sub-sites
  • Helper changes
  • Configuration changes
    • New config $lc_assetVersion in config
    • Allow constants to define in /inc/constants.php
    • Allow route.config.php and constants.php in app and sub-sites. Check the documentation.
    • Include SSL configuration $lc_ssl which is configurable in /inc/parameter/{env}.php
  • Pager changes
    • Add className property and set htmlTag without lt/gt char
    • Change pager class to lc-pager
    • Add /app/pager_helpers including pager display callback for bootstrap pagination pager_bootstrap(),
    • Allow to add a callback function for Pager display() to customize pagination html
    • Pager saves the last page no in session and available from session_set('lc_last_page')
  • JS changes
    • Upgrade to jquery 3.5.1 and jquery ui 1.12.1
    • Make $lc_baseDir available in js by LC.vars.baseDir
    • Create LC.List object to make list request, create/edit dialog and delete confirm dialog
    • Add optional params to ajax list request
    • Add deleteCallback option to ajax list init
    • Add js dependent updater LC.DependentUpdater in order to change another select dropdown upon on select dropdown change
    • Add a new js function LC.Page.elementGroup.add() to allow dynamic elements to add on the form
    • Allow update URL for ajax list js helper
    • Add createCallback option for ajax list js helper
    • Add throbber flag to list request js function so that it can be off for each request
  • Base CSS Changes
    • Add new class lc-form-input for form input elements
    • Add .red class for button
    • Add spinner animation CSS with .spinner class
    • Add style to hide spinner for number inputs
    • Add bootstrap alert classes to message block
    • Change warning box border color

Updates and fixes in Release 3.0.0

  • Change default database collation and charset to utf8mb4
  • Change S_PREFIX to __LC__
  • Fix PHP 7.3 warning: continue targeting switch is equivalent to "break" (#3)
  • Rename setReference() to getReference() in Seeder.
  • Disable translation by default if not multilingual site
  • Disable translation by default when only one language is defined
  • Render 40* page directly without redirecting
  • Remove inc schema extension for backward compatibility
  • Remove backward compatibility engine from db config (use driver instead)
  • Fix exception handler
  • Fix query for duplicate username check validation
  • Replace special chars with underscores for query placeholders
  • Fix base CSS styles for responsive and other miscellaneous fixes
  • Change database table and field name convention
  • Fix AsyncFileUploader bug
  • Fix schema:update command for line break parsing on sql statement
  • Add FOREIGN_KEY_CHECKS in sqlc version file
  • Add default data attribute for form dialog edit
  • Make page loading message center from js instead of css
  • Change to semi-colon for schema SQL statement parsing
  • Fix file name detect logic in Seeder
  • Add sample auth middleware.
  • Fix clear value bug on form clear
  • Add condition array empty check in andWhere() and orWhere()
  • Remove the deprecated Form and Page variables from LC.js
  • Add more text inputs on keypress enter detection for form submit
  • Bind bootstrap tooltip only for the list container
  • Add return type for db_save(), db_update() and db_insert()
  • Add example entity file /app/entity/post.php
  • Make sure foreign key check working for every SQL batch execute
  • Remove autofocus in form from js
  • Fix recursive utility helpers include
  • QueryBuilder: Fix select statement clause ordering
  • Skip route matching for CLI commands
  • Fix Router for route matching and request methods check
  • Add null check in db_update()
  • Typecast to array if object is given to the global LC.vars
  • Fix eval usage in ajax request helper
  • Add upd_ prefix to placeholders in update query to avoid conflict from condition placeholders
  • Fix QueryBuilder placeholder manipulation for condition IN case
  • Make array mandatory validation working correctly
  • Truncate and foreign key check off for db seeding
  • Fix 1:1 relationship generation in SchemaManager
  • Fix auto placeholder naming for IN operator
  • Change lc.inc to php extension
  • Move _arg() to security helper
  • Fix _get() and _post() for two-dimensional array inputs
  • Include lc_namespace parameter from AsynFileUploader to know where it is invoked from
  • Change hook name parameter in AsynFileUploader
  • Remove the config $lc_nullFill usages
  • Fix naming convention for asset version config
  • ConsoleTable: Fill up the header columns to max row column count
  • Change default config date format d-m-Y to d/m/Y