History
I first started building websites with PHP at the age of 15, hoping to escape the treacherous world of PERL. After a few years, I noticed I was writing the same code over and over again, and did what any ambitious young programmer would do: I turned those patterns into a framework. That framework, the Zibings Site Framework (or ZSF for short), has been in development ever since, and has been used to build over 100 websites of all different shapes and sizes.
Over time, we developed the following guiding principles:
- Build tools that saved time without forcing you to use them
- Scaffold in a way that was (at least) similar to how the rest of the PHP community builds
- Don't pretend that we know the "one true way" to do anything. We're idiots sometimes.
In the end, ZSF has gone through a number of iterations, even having been renamed to things like "N2F" (the "No-Nonsense Framework"). Every time, though, my group of close developer friends and I come back to our roots and keep tweaking the way we build until we have something that speeds up our process significantly.
Changelog
-
Added
Added 'Pre' hooks for
UserEventsevents -
Added
Added docker guards/conditions to
Exec.ps1system - Added Added local SMTP trap server for testing
-
Added
Added
ApiController::tryGetParams()helper method -
Added
Added
UserRolesinstance toApiController -
Fixed
Made sure
-PdbPassis in allExec.ps1configuration calls -
Added
Added docker project detection to
Exec.ps1system - Changed Changed docker configuration to use dependencies correctly and removed 25s init wait
- Added Added support for ensuring docker and containers are running before executing commands
-
Added
Added
upas alias forinitinExec.ps1system -
Fixed
Fixed
UserEvents::doUpdate()typo for$displayName - Changed Project now requires and is compatible with PHP 8.4+
- Fixed Fixed issue with admin UI builds
-
Added
Added
UserEvents::doSendReset()method -
Added
Added session timeout setting and usage throughout
UserEventssystem - Added Added settings toggle to enable/disable logging output from API entry file
-
Added
Added
ApiController::getBasicParams()helper method -
Added
Added
ApiController::isSelfOrAdmin()helper method -
Removed
Removed
UserDevicesystem until it can be fully thought through - Added Added full PgSQL support
- Added Added basic E2E testing system on top of PHPUnit
- Added Added prompt before deleting existing db migrations
- Added Added guard around default migration copyover
- Fixed Fixed missing L from accepted username charset
-
Added
Added
ZSF_VERSIONglobal constant -
Added
Added y/n prompt to
downcall with docker - Changed Exposed all ports for docker compose configuration
- Fixed Fixed auth header issue & refactored duplicate code
- Added Added correct token check for password reset
-
Changed
Adjusted
ApiControllerto usePdoHelperand new auth header - Fixed Modified API routes to prevent fall-through
- Changed Project now requires and supports PHP 8.3+
- Changed Moved migrations to top level of project
-
Added
Added optional
rolesparameter for login -
Fixed
Corrected usage of
password_verify() - Added Added unique constraint for display names
-
Added
Added
/1.1/Profile/CheckDisplayNameAPI endpoint -
Added
Added cookie fallback for user auth in
ApiController -
Fixed
Fixed issue with
mt_srand()and implicit conversions -
Added
Added
getUserAuthToken()andgetUserSession()helper methods toApiController - Changed Changed UI to use VueJS 3 instead of old PHP template system
- Added Added CORS settings for great API configuration
- Changed Project now requires and supports PHP 8+
- Changed Improved formatting consistency