PHPMaker 2025.9 Released

We are pleased to announce the official release of PHPMaker 2025. PHPMaker 2025 is a huge upgrade from v2024. It is loaded with a bunch of new features, please refer to What’s New in PHPMaker 2025 for more details.The new version can be downloaded at the Download page.

Note Please read System Requirements before installing the new version, especially:

  • PHP >= 8.1.0
  • Node.js (includes npm) (LTS >= v18.17.0 or Current >= v20.3.0)
  • Composer >= 2.6.0

IMPORTANT

Please make sure you read Migrating to v2025 first.

PHPMaker 2025 can co-exist with previous version of PHPMaker. You do NOT need to uninstall previous version of PHPMaker if you don’t want to.

Before trying the new version, please backup your existing projects first.To purchase license for PHPMaker 2025 or upgrade, please visit the Purchase page.

PHPMaker can now be purchased with a subscription license or a perpetual license:

Subscription license - you always get the most updated version (including major version) and email support within the subscription period.

Perpetual license - you own the purchased version for life with 6-month email support from the date of purchase only.

Read Licensing and Purchasing FAQ to decide which type of license you prefer.

For perpetual license: Upgrade policy remains unchanged. 6-month email support.

2024/10/20 v2025.1.0

  • Improved: Generate database port as integer
  • Fixed: User image
  • Fixed: Import errors and rollback
  • Fixed: Session expired notice
  • Fixed: Maintenance middleware
  • Fixed: Inline-Add to empty table
  • Fixed: Skip CSRF middleware for API
  • Fixed: Return data type for Exceute()
  • Fixed: Custom attributes as string/array
  • Fixed: Lookup record count for SQL Server
  • Fixed: Default value for report Filter field
  • Fixed: Generating projects without user table
  • Fixed: Property name for reserved field names
  • Fixed: Generating language files if Clear Folder first
  • Fixed: Security config file for projects without super admin
  • Updated: Chart.js, chartjs-plugin-annotation and SweetAlert2
  • Many other minor improvements

2024/11/11 v2025.2.0

  • Add “Grant” permission
  • Support MSSQL GUID primary key
  • Improved: Add preventScroll for Select2
  • Improved: Add http/https adapter for Flysystem
  • Improved: Handle null value for multi value search
  • Improved: Export-to-HTML table header color in reports
  • Improved: Ensure valid static user level ids and names
  • Improved: Show “Exceed maximum login retry count” error
  • Improved: Rename chart/field phrases when synchronizing tables
  • Improved: Copy package.json to PHPMaker folder only if higher version
  • Improved: Detect PostgreSQL partitioned tables (UI)
  • Fixed: Get Oracle schemas (UI)
  • Fixed: Color picker
  • Fixed: 100% stacked charts
  • Fixed: Type declaration errors
  • Fixed: Checking concurrent login
  • Fixed: Copying events in calendar reports
  • Fixed: Check permission when checking page action
  • Fixed: Decrypting SMTP username and password
  • Fixed: Checking user login session if impersonating
  • Fixed: Remember Me when 2FA disabled
  • Fixed: 2FA for super admin with special characters in username
  • Fixed: Database user login for REST API
  • Fixed: Permission checking for calendar Add/View/Edit/Delete
  • Updated: Chart.js and SweetAlert2
  • Updated: WebView2 1.0.2849 (UI)
  • Many other minor improvements

2024/12/02 v2025.3.0

  • Add “Access” permission
  • Improved: Loading table names for MSSQL LocalDB
  • Improved: Show exception for failed email message
  • Improved: Enable CORS and authentication log only if Debug enabled
  • Fixed: Registration page
  • Fixed: Exporting Master/Detail
  • Fixed: Chart user configurations
  • Fixed: Custom validation function
  • Fixed: Permissions with security disabled
  • Fixed: Query builder for dashboard reports
  • Fixed: Azure BLOB storage connection string
  • Fixed: Confirm password field in Multi-Page
  • Fixed: Set up User IDs correctly for lookup
  • Fixed: Array value for DisplayValueSeparator
  • Fixed: CSS class of lower panel in List page
  • Fixed: SendEmail() with multiple email addresses
  • Fixed: List action with long submission method name
  • Fixed: Uploaded image URLs for TinyMCE and FileManager extensions
  • Fixed: Show null values in advanced settings (UI)
  • Updated: Chart.js, FullCalendar and Font Awesome Free
  • Updated: WebView2 1.0.2903 (UI)
  • Many other minor improvements

2025/01/02 v2025.4.0

  • Improved: Add Config(“DEBUG_BAR”)
  • Improved: Resize map on modal shown
  • Improved: Not formatting calendar ID field
  • Improved: Handle empty access control headers
  • Improved: Copy/Move file across file systems
  • Improved: File upload for file without extension
  • Improved: UniqueFilename() allows path in file name
  • Improved: Connecting MSSQL LocalDB (UI)
  • Fixed: Searching numeric values
  • Fixed: Searching User Level ID field
  • Fixed: Show error in hidden detail tab
  • Fixed: Custom Template for detail key field
  • Fixed: Root upload path for local file system
  • Fixed: Add blank row for multiple master/detail
  • Fixed: Letter case of the file PhpMailerTransport.php
  • Fixed: Lookup field when Link Field same as Display Field
  • Fixed: ListContents() function for file system
  • Fixed: Login with PhpCaptcha without 2FA (Captcha extension)
  • Fixed: Locale settings, synchronizing Custom Views, and field mapping form (UI)
  • Updated: SweetAlert2 and Font Awesome Free
  • Updated: dompdf extension
  • Many other minor improvements

2025/01/20 v2025.5.0

  • Improved: Login page placeholders
  • Improved: LDAP and SAML2 authentication
  • Improved: Ensure existence of log folder
  • Improved: Add Page_Redirecting for logout
  • Improved: Add CSS classes for summary captions
  • Improved: Rendering lookup fields for view/edit
  • Improved: Skip User ID filter in preview page URL
  • Improved: Set MigratePassword default value as true
  • Improved: Add “Custom transport factory” advanced setting
  • Improved: Allow removing HTML elements from reports by CSS selector during export
  • Improved: Do not use STRING_SPLIT for MSSQL 2012/2014 (MSSQL < 2012 not supported)
  • Fixed: Proxy server settings
  • Fixed: Delete uploaded files
  • Fixed: User ID for same User Level
  • Fixed: Multiple file upload fields
  • Fixed: Compatibility of Leaflet and Google maps
  • Fixed: Row_* server events for calendar reports
  • Fixed: Implicitly nullable type declaration (for PHP 8.4)
  • Updated: SweetAlert2
  • Updated: dompdf extension
  • Many other minor improvements
1 Like

2025/02/12 v2025.6.0

  • Improved: Escape LDAP settings
  • Improved: Skip add option button in Add Option page
  • Improved: Skip checking password on refreshing user
  • Improved: Clean temp upload paths after grid actions
  • Improved: Tooltip for radio/checkbox selection lists
  • Fixed: User profile cookie name
  • Fixed: CORS middleware for PHP 8.4
  • Fixed: Parent User ID field checking
  • Fixed: Uploading files in Grid-Add/Edit
  • Fixed: Some type declarations for PHP 8.4
  • Fixed: Rendering lookup field in View page
  • Fixed: Hyperlink of grouping fields in reports
  • Fixed: Registration activation without auto login
  • Fixed: Loading user levels for administrator user level
  • Fixed: User_LoggingIn server event with LDAP authentication
  • Fixed: Get record count with field values containing “FROM”
  • Fixed: Checking server events for tables used by calendar reports
  • Updated: SweetAlert2
  • Updated: WebView2 1.0.3065 (UI)
  • Many other minor improvements

2025/03/04 v2025.7.0

  • Improved: Allow Custom User Checker
  • Improved: Reuse token by CSRF middleware
  • Improved: Support 2FA after User_CustomValidate server event
  • Improved: LDAP authentication without search dn and search password
  • Improved: Detect geography and geometry columns with non-public project schema (PostgreSQL)
  • Improved: Allow setting search_path for multiple schema by Database_Connecting (PostgreSQL)
  • Improved: Better DPI awareness (UI)
  • Fixed: Import data with update
  • Fixed: Auto-fill float values with formatting
  • Fixed: CurrentUserLevel() return type declaration
  • Updated: PHP debug bar
  • Updated: Azure Blob Storage adapter
  • Updated: SweetAlert2, PDFObject, Chart.js, Tempus Dominus (DateTime Picker)
  • Many other minor improvements

2025/03/27 v2025.8.0

  • Improved: Handle 2FA for Windows users
  • Improved: Lookup cache by file system cache
  • Improved: Allow Row_CustomAction without ListAction
  • Improved: Allow specifying none or multiple schema (PostgreSQL)
  • Fixed: DiDom (for PHP 8.4)
  • Fixed: IsWindowsUser() function
  • Fixed: Persisting Remember Me cookie
  • Fixed: Ddownload filename for Firefox
  • Fixed: Allow View All in preview page
  • Fixed: Use client side validation for 2FA
  • Fixed: Expired password for impersonated user
  • Fixed: ShowMultipleDetails without Detail-View/Edit/Copy
  • Fixed: User ID Security (without User Level Security enabled)
  • Updated: DateTime Picker
  • Updated: WebView2 1.0.3124 (UI)
  • Many other minor improvements

2025/04/19 v2025.9.0

  • Improved: Support long press on calendar event for mobile devices
  • Improved: Use default sender email for notification if not provided
  • Fixed: UniqueFilename()
  • Fixed: Preview page refresh
  • Fixed: Windows User with 2FA
  • Fixed: Checking if CSP enabled
  • Fixed: Checking if captcha enabled
  • Fixed: TimePicker CSS in modal form
  • Fixed: One time password email template
  • Fixed: List action SuccessMessage checking
  • Fixed: Calendar popover (bottom) arrow color
  • Fixed: API updating unspecified fields to null
  • Fixed: Skip cache query if lookup cache is disabled
  • Fixed: UnformatDateTime() argument type (for PHP 8.4)
  • Fixed: Permission with security disabled (for PHP 8.1 only)
  • Fixed: ActivateAccount message in login page if not auto login
  • Fixed: Loading PostgreSQL foreign table and schema names (UI)
  • Updated: SweetAlert2, Chart.js, DateTime Picker and Bootstrap
  • Updated: WebView2 1.0.3179 (UI)
  • Many other minor improvements