| Changelog for yaf | 
                                    
                        | Release | What has changed? | 
                                            
                                                    
                                | 3.3.7 | - Fixed build with PHP8.5 | 
                                                                    
                                                    
                                | 3.3.6 | - Fixed build with PHP8.3 | 
                                                                    
                                                    
                                | 3.3.5 | - Fixed ISSUE #566 (bootstrap method named "_init" is not be called) - Fixed ISSUE #569 (Yaf_Application::getInstance is not static)
 - Fixed ISSUE #570 (call_args parsing error in static_route)
 - Fixed ISSUE #571 (Yaf_Request::setController failed if format arg is false)
 | 
                                                                    
                                                    
                                | 3.3.4 | - Fixed build with PHP8.1 - change to using stub.php generated arginfos
 | 
                                                                    
                                                    
                                | 3.3.3 | - Fixed issue #546 (Segfault due to get_gc handler changed) - Use interned strings
 - Fixed Issue #545 segfault in yaf_route_simple::construct
 - Optimized Yaf_Route_Map::route
 | 
                                                                    
                                                    
                                | 3.3.2 | - Fixed Memory leak in yaf_loader - Fixed issue #537 (segfault in macos with 4 bytes length controller name)
 - Fixed issue #536 (application.bootstrap not used)
 | 
                                                                    
                                                    
                                | 3.3.1 | - Fixed Issue #535 (segfault due to double free on platform without alloca) - Fixed issue #530 (segfault while exiting in action)
 | 
                                                                    
                                                    
                                | 3.3.0 | - PHP8 Supported - Fixed issue #508 (Route::addConfig take action as module wrongly)
 - Fixed issue #509 (getViewpath return NULL)
 - Fixed issue #513 (supports of custom camel MVC name)
 - Fixed issue #518 (setRediect not working)
 | 
                                                                    
                                                    
                                | 3.2.5 | - Fixed issue #492 (init method could be protected) - Fixed issue #492 (plugins maybe changed in controller execution)
 - Fixed issue #492 (empty names shoud not be set to request)
 - Fixed cow_violation conflicts
 | 
                                                                    
                                                    
                                | 3.2.4 | - Fixed issue #489 (global library is not used if namespace is not set) - Fixed issue #490 (segfault with repeated call arguments)
 | 
                                                                    
                                                    
                                | 3.2.3 | - Fixed issue #482 (segfault if plugin doesn't defines all hooks) - Fixed issue #481 (application.system.yaf.directory has no effect)
 | 
                                                                    
                                                    
                                | 3.2.2 | - Added Yaf_Dispatcher::setResponse - Removed FINAL flags of Yaf_Request_*, Yaf_Response_*
 - Fixed bug that ErrorController doesn't respect returnResponse
 | 
                                                                    
                                                    
                                | 3.2.1 | - Fixed Namespace resgister unexpected overridden - Fixed yaf_slip_equal fails on 4-bytes string
 - Added Yaf_Dispatcher::getResponse()
 | 
                                                                    
                                                    
                                | 3.2.0 | - Refactor core data structs for performance, 20% speed up according to demo created by tool/cg/yaf_cg - Implemented PSR-4 autoloading, user now can specific a path for a namespace by Yaf_Loader::registerNamespace(name, path)
 - Added Yaf_Loader::registerNamespace(), Yaf_Loader::getNamespaces(), Yaf_Loader::getNamespacePath()
 - Added Yaf_Request::clearParams()
 - Added Yaf_Controller::getName(), Yaf_Action::getControllerName()
 - Added Yaf_Dispatcher::getDefaultModule(), Yaf_Dispatcher::getDefaultController() and Yaf_Dispatcher::getDefaultAction()
 - Added Yaf_Application::getInstance(), which is alias of Yaf_Application:app()
 - Added optional $format_name argument to Yaf_Request::setModule/Controller/actionName
 if it set to false, Yaf will set original input as name,
 default it true, which means Yaf will format the name(camel/lowercase) before set it to Request
 - Yaf_Controller::__construct now accpet no parameters, it now requires Yaf_Application is initialized.
 - Rmoved all lead underline for fake protected property name(examing by var_dump)
 - Fixed bug that protected method of Bootstrap get executed
 - Yaf_View_Simple is final class now, custom view engin should implements Yaf_View_Interface
 - Yaf_Route_* now routes valid Module/Controller/action name directly
 - Yaf_Controller action's arguments will be set even if there are gaps now (see test/issue420.phpt)
 | 
                                                                    
                                                    
                                | 3.1.4 | - Fixed issue #469 (treat autocontroller as Controller mistakenly) - Fixed issue #468 (abort if same key assigned to view)
 - minor optimization to avoding memory allocations
 | 
                                                                    
                                                    
                                | 3.1.3 | - Fixed issue #466 (segfault if getRequest without name) - Fixed bug (unexpected path too long error)
 - Fixed valgrind warning about access to uninitilized value while memcmp
 | 
                                                                    
                                                    
                                | 3.1.2 | - Fixed bug (Yaf detecting base_uri failed) | 
                                                                    
                                                    
                                | 3.1.1 | - Fixed memrchr missed in windows | 
                                                                    
                                                    
                                | 3.1.0 | - Refactor Yaf_Loader for performance - Refactor lots of codes to avoiding memory allocation
 - Yaf_Loader::getNameSpaces() now return array instead of comma separated string
 - Yaf_Route_Rewrite now process multiple repeated bach slashes as one
 - Removed --enable-yaf-debug, now yaf allows user to moditify variables in $_POST etc
 - Fixed bug while stripping base_uri
 | 
                                                                    
                                                    
                                | 3.0.9 | - Fixed build with PHP-7.4 | 
                                                                    
                                                    
                                | 3.0.8 | - Fixed build with PHP-7.3 | 
                                                                    
                                                    
                                | 3.0.7 | - Fixed issue #389 (segfault in debug mode while running with phpunit) | 
                                                                    
                                                    
                                | 3.0.6 | - PHP-7.2 Support - Fixed assertion faile (potential unexpected write to immutable array)
 | 
                                                                    
                                                    
                                | 3.0.5 | - PHP-7.2 Support - Fixed issue #360 (class not found in high traffice server)
 | 
                                                                    
                                                    
                                | 3.0.4 | - Fixed bug wrong variables scope in tpl - Minor optimizations
 | 
                                                                    
                                                    
                                | 3.0.3 | - Fixed issue #273 (segfault if stdclass passed to dispatch) - PHP-7.1 compatible fixes
 | 
                                                                    
                                                    
                                | 3.0.2 | - Fixed issue #231 (php-fpm worker core dump BUG) - Attempt to fix issue #226 (Segfault on windows7 64bits)
 - Fixed issue #232 (segfault with Yaf_Route_Simple)
 | 
                                                                    
                                                    
                                | 3.0.1 | - Fixed auto_render bug - Fixed issue #220 (segfault on read_property)
 - Fixed bug of baseuri setting
 - Fixed issue #163 (forward from init controller)
 - Fixed Bug #70913 (Segfault while new Yaf_Controller)
 | 
                                                                    
                                                    
                                | 3.0.0 | - Release Yaf for PHP7 | 
                                                                    
                                                    
                                | 2.3.5 | - Fixed bug (redirect doesn't work) | 
                                                                    
                                                    
                                | 2.3.4 | - Fixed ISSUE #134 - Fixed ISSUE #181
 - Fixed invalid read(segfault) with php-5.4
 - Fixed bug (Exception in preDispatch is not caught)
 | 
                                                                    
                                                    
                                | 2.3.3 | - Fixed build with PHP-5.6 | 
                                                                    
                                                    
                                | 2.3.2 | - Fixed windows build - Changelog 2.3.0:
 - Added Yaf_Response::setHeader, getHeahder, setAllHeader, clearHeaders Methods
 - Added Yaf_Route::assemble. (Now you can assemble url via routes)
 - Fixed Segfault if a empty application.directory is set
 | 
                                                                    
                                                    
                                | 2.3.1 | - Fix package | 
                                                                    
                                                    
                                | 2.2.9 | - Fixed bug #63900 (Segfault if separated action executes failed) - Fixed some compiler warnings (Remi)
 | 
                                                                    
                                                    
                                | 2.2.8 | - Fixed bug that partial module name taken | 
                                                                    
                                                    
                                | 2.2.7 | - Improve the templates directory handling - Fixed bug #63438 (Strange behavior with nested rendering)
 | 
                                                                    
                                                    
                                | 2.2.6 | - Fixed bug #63381 ($_SERVER['SCRIPT_NAME'] changed by yaf) | 
                                                                    
                                                    
                                | 2.2.5 | - Release stable version - Fixed bug empty template file interrupts forwarding chain
 - Add LICENSE file according to FR #63239
 | 
                                                                    
                                                    
                                | 2.2.4 | - Improving warning info while failed opening template script - Fixed bug that $this is not Yaf_View_Simple in render method which was introduced in 2.2.3
 - Fixed memleak in Yaf_View_Simple::display()
 | 
                                                                    
                                                    
                                | 2.2.3 | - Call autoRender, flushInstantly, returnResponse of Yaf_Dispatcher without args return current state now (Demon) - Fixed bug that Yaf_Application::environ is undefined on windows
 - Improve warning message while script can not be loaded
 | 
                                                                    
                                                    
                                | 2.2.2 | - Yaf_Controller's methods are not final anymore - Yaf_View_Simple is not final anymore
 - Memleaks fixed in various place
 | 
                                                                    
                                                    
                                | 2.2.1 | - (Repackage, previous one missed one fix) - Implemented Yaf_Response::setBody with key(which will make the layout easier to implement)
 - New method Yaf_View_Simple::eval, Yaf_View_Simple::clear
 - Support short open tag in view templates regardless of php.short_open_tag
 - Make Yaf_Autoload faster(30%)
 - Controller of default module can be autoloaded now
 - Single class can be local class now (previous is a design issue)
 - Performance improve in various place
 - Compatible with php5.5, which droped PHP logo guid
 - Fixed bug that Supervar should not respect the base_uri
 - Implemented FR #62702 (Make baseuri case-insensitive)
 - Implemented FR #62638 (Supports set yaf runtime configuration via application.ini)
 | 
                                                                    
                                                    
                                | 2.1.18 | - Fixed bug that Yaf_View_Simple::eval doesn't accept short open tag - Fixed bug that Yaf_View_Simple::eval doesn't allow tpl be wrapped by PHP opening tag
 | 
                                                                    
                                                    
                                | 2.1.17 | - Fixed bug config will not re-loaded even it was modified - Fixed bug segfault occurred if uncaught exception in Yaf_Controller::init
 - If action return false, dispatch loop will go on with no auto-renderring
 - Remove inline declarations (-fgnu-c89 on MacOS)
 | 
                                                                    
                                                    
                                | 2.1.16 | - Fixed bug that if fatal error occurred in template, Yaf_View_Simple doesn't output the error message - Fixed bug that segv in Yaf_View_Simple::render if the tpl directory parameter is not a string
 - Fixed one invalid read in Yaf_Route_Static
 - Fixed bug that segv occurred while using a custom view engine
 - Fixed one memleak
 | 
                                                                    
                                                    
                                | 2.1.15 | - Fixed typo variable name in static route(affect 2.1.14) | 
                                                                    
                                                    
                                | 2.1.14 | - Fixed Bug that if no routes success router will throw exception(since 2.1.13 Yaf supports configure default route by application.ini) - Fixed Bug that 'foo/index' router result as c => index a => foo(affected 2.1.13)
 | 
                                                                    
                                                    
                                | 2.1.13 | - Added Yaf_View_Simple::eval - Supported short_open_tag in Yaf_View_Simple
 - Fixed a potential segfault while alternately access two yaf application host in one machine
 - Improve the Yaf_Route_Static/Supervar::route logic
 - Fixed bug that 404 occurred if the request is prefix with more than one slash
 - Fixed bug that free NULL pointer in Yaf_Loader::registerLocalNameSpace
 | 
                                                                    
                                                    
                                | 2.1.12 | - Fixed bug that baseUri set to wrong value (affected version: 2.1.10, 2.1.11) - Fixed bug Yaf_View_Simple crash while calling assign if construct it with no tpl_dir
 - Fixed bug that Yaf_View_Simple::display doesn't convert controller name
 | 
                                                                    
                                                    
                                | 2.1.11 | - Improve Yaf_Config parsing performance,  if the wanted section was parsed, then overpass the rest sections - Now catchException will failover to the default moudle error handler
 - Added Yaf_View_Simple::clear
 - Support set default route by config(appliation.dispatcher.defaultRoute)
 - Support adding Yaf_Route_Map by config
 - Allow Yaf_View_Simple::get(void)
 - Fixed Bug that Yaf_Config_Ini will take part of the section
 - Fixed bug that yaf_config_ini_deep_copy is not much deepy.
 - Fixed bug Yaf_Route_Simple dont respect application.modules configure
 - Fixed some memory leaks
 | 
                                                                    
                                                    
                                | 2.1.10 | - Improved Yaf_Config_Ini::__Construct performance, and reduce memory consumption - Fixed bug #61493 (Can't remove item when using unset() with a Yaf_Config_Simple instance)
 - Support controller autoloading(Only default module)
 - Fixed bug that the controller name could be lowercase in routeShutdown hook
 - Fixed bug that segfault while attempt to free owrite_handler
 - Added Yaf_Controller::$yafAutoRender to controller render
 - Fixed some memory leaks
 | 
                                                                    
                                                    
                                | 2.1.9 | - Fixed Bug that Yaf_Response::setBody cause invalid read | 
                                                                    
                                                    
                                | 2.1.8 | - Fixed bug Yaf_Response::setBody act the same as Yaf_Response::prependBody | 
                                                                    
                                                    
                                | 2.1.7 | - Release 2.1.7 stable | 
                                                                    
                                                    
                                | 2.1.6 | - Fix Bug that classname with namespace can not be auto loaded | 
                                                                    
                                                    
                                | 2.1.5 | Fix Bug #60608 | 
                                                                    
                                                    
                                | 2.1.4 | - Improve the Yaf_Loader::getInstance, make the Yaf_Loader can be used independently - Implemented Yaf_View::assignRef, which didn't work as expect before.
 | 
                                                                    
                                                    
                                | 2.1.3 | -Fixed Bug that Yaf still call to Yaf_View_Simple although a custom view engine was setted | 
                                                                    
                                                    
                                | 2.1.2 | -Added Yaf_Application::getLastErrorNo -Added Yaf_Application::getLastErrorMsg
 -Added Yaf_Application::clearLastError
 -Changed trigger ERROR to E_RECOVERABLE_ERROR, then people can use set_error_handler to catch it
 | 
                                                                    
                                                    
                                | 2.1.1 | -Fixed Yaf_View_Simple::render flush output instantly in PHP5.4 -Fixed Yaf_Session crash in PHP5.4
 | 
                                                                    
                                                    
                                | 2.1.0 | - Avoided calling to get_class_entry for higher performance - Remove unnecessary stack variable initialization
 - Fixed mem leak reproted by test scripts
 - Added arginfo for all methods
 - Standardize error message
 - Add Yaf_Request::setRequstUri
 - Fixed build broken with PHP 5.4
 - many other litte improvements
 | 
                                                                    
                                                    
                                | 2.0.1 | - Fixed Bug that when call to Yaf_Config_Ini/Yaf_Config_Simple with freaky paramters then invoke its methods cause crash (thanks to Felipe Pena) - Yaf_Application::execute call Zend_API call_user_func instead of call zif_call_user_func, since zif_call_user_func was not declared with dllexport
 - Built on windows with PHP-5.3.6 and PHP-5.2.15 (you can download the dll on Yaf Google Code)
 - Corrected some broken C89 statements
 | 
                                                                    
                                                    
                                | 2.0.0 | - First release version |