AGAVI CHANGELOG =============== 1.0.0 beta 1 (August 10, 2008) ------------------------------ ADD: XSL Transformations done by XML Config Parser should have some information available in template parameters (#710) (David, Noah) ADD: Add extension points to XML schema definitions where feasible (#515) (David, Noah) ADD: Update SOAP support to make use of functionality introduced in #710 (#795) (David) ADD: Allow additional types for second argument of AgaviLoggerManager::log() (#634) (David) CHG: Move XML validation to RelaxNG and Schematron (#462) (Noah, David) CHG: Change configuration system to support only XML (#519) (David, Noah) CHG: Change default for assigning of "inner" content to $slots template array to disabled (#794) (David) CHG: Rewrite the project build system and throw out the old one (#689) (Noah) CHG: Refactor internal "system action" handling and fowarding (#769) (David) CHG: Bump minimum required PHP version to 5.2.0 (#738) (David) CHG: Remove direct association of validator instances and request methods (#767) (David) CHG: Make request method per-container (#667) (David) CHG: Deprecate core.use_routing in favor of a routing config parameter (#683) (David) CHG: Moved AgaviWebRequest::getSourceValue() to AgaviRequest (#686) (David) CHG: Deprecated AgaviSecureWebRequest (#676) (David) CHG: Deprecated AgaviAdodbDatabase (#662) (David) FIX: Security filters cannot perform checks in addition to isSecure() (#671) (David) 0.11.3 RC1 (August ??, 2008) ---------------------------- ADD: Set current Context instance on Doctrine connections (#800) (David) ADD: Support for doctrine connection settings and options (#788) (David) CHG: Update timezone database to 2008e (#806) (David) CHG: Dump "xhtml" output type from sample app and introduce a replacement (#802) (David) CHG: Assigning of "inner" content to $slots template array should be configurable (#793) (David) FIX: AgaviExecutionTimeFilter runs only once (#801) (David) FIX: PEAR installations place src/routing/soap files in the data directory rather than the source directory (#799) (Noah) 0.11.2 (July 8, 2008) --------------------- FIX: Several config handlers are missing checks for existance of element(s) inside (#796) (David) FIX: Namespace for disabled module forwarding information is wrong (#792) (David) 0.11.2 RC2 (July 2, 2008) ------------------------- FIX: Exception templates incorrectly fix information about exception origin (#790) (David) FIX: Markup is escaped by accident in shiny exception template (#791) (David) FIX: Using '#' in a routing pattern triggers a warning (#789) (Dominik) 0.11.2 RC1 (June 27, 2008) -------------------------- ADD: Support trimming of input string in AgaviStringValidator (#745) (David) ADD: Add support for native doctrine model autoloading (#759) (David) ADD: Add support for doctrine manager attributes (#783) (David) ADD: Add SecurityUser::hasCredential and SecurityUser::getCredentials for convenience (Noah) (#772) ADD: Add convenience methods to AgaviUploadedFile (#607) (David) ADD: Allow arrays as values for web request sources. (#675) (David) ADD: Allow arrays as setting values in settings.xml (#670) (David) ADD: Ability to return data from view as inner content for first layer in a rendering batch (#655) (David) ADD: Allow nested routing structures with concatenated name or action attributes in ancestors other than immediate parents (Dominik) (#764) CHG: AgaviController::dispatch() should accept module and action names in the request data argument with routing disabled (#776) (David) CHG: Routing should not just bail out of execute() if routing is enabled, but no routes are defined (#779) (David) CHG: Refactor AgaviContext::initialize() and the passing of "profile" (#778) (David) CHG: Arguments passed to AgaviController::dispatch() should have precedence over routing results (#777) (David) CHG: Introduce generic AgaviStreamLoggerAppender (#773) (David) CHG: Make AgaviLoggerAppender an AgaviParameterHolder (#774) (David) CHG: Change error class handling in FPF to set classes on elements returned by the respective XPath expressions, not the original elements (#768) (David) CHG: Use file locking everywhere files are written (Dominik) (#766) FIX: AgaviValidationManager::hasError() is inconsistent with AgaviValidationManager::getError() regarding severity (#784) (David) FIX: Routing tests do not reset core.use_routing in tearDown() (#781) (David) FIX: stdout/stderror log appenders are broken (#751) (David) FIX: Caching configuration blocks might be merged incorrectly (#755) (David) FIX: Caching and validation configurations cannot be per-context (#754) (David) FIX: Form Population Filter incorrectly inserts XML prolog into HTML documents (#771) (David) FIX: Calling move() twice on the same uploaded file will cause a bogus exception (#770) (David) FIX: shiny.php exception template does not use htmlspecialchars() when outputting file paths (#765) (David) FIX: Static method AgaviBaseConfigHandler::replacePath() is used in object context in two config handlers (David) (#762) 0.11.1 (May 9, 2008) -------------------- FIX: UTF-8 Special characters in exception messages get garbled in exception output (Tanaka Koichi, David) (#758) 0.11.1 RC3 (May 2, 2008) ------------------------ ADD: Add ability to cache complete request attribute namespaces in Execution Filter (#740) (David) CHG: Non-Agavi exceptions should be clearly marked as such (#749) (David) CHG: Change execution filter to run action again if action is cached, but output type of the view isn't (#742) (David) CHG: Update timezone database to 2008b (#728) (David) FIX: Arrays exported by a validator do not survive validation cleanup (#756) (Dominik) FIX: AgaviArrayPathDefinition::getFlatKeyNames() returns nonsense if the prefix is "0" or an empty string (#757) (Dominik) FIX: Request is not properly unlocked if an exception occurs (#753) (David) FIX: logging.xml in code templates does not work out of the box (#750) (David) FIX: Actions that return no View are never cached (#746) (David) FIX: AgaviDateFormatter::translate() might kill DateTime's DateTimeZone object (#743) (David) FIX: Reusable renderers do not work (#741) (David) FIX: AgaviInflector::singularize returns the wrong singular form of "caches" (#739) (Dominik) 0.11.1 RC2 (March 22, 2008) --------------------------- CHG: Make AgaviView::createForwardContainer() forward arguments from the current container if no arguments given (#707) (David) CHG: AgaviView::create*Container() should use null as default for arguments (#735) (David) CHG: Routing, GettextTranslator etc should use AgaviToolkit::expandVariables (#708) (David) CHG: Speed up unique ID generation (#731) (David) CHG: Bring sample app and code templates up to date (#719) (David) CHG: Update timezone database to 2008a (#727) (David) CHG: List of matches for a route should be populated by the time onMatched() is called on a callback (#730) (David) CHG: Check for existing X-Powered-By header before setting it in WebResponse (#716) (David) CHG: Execution Filter should read action attributes for caching from Action, not Container (#706) (David) CHG: Cache write order in execution filter should be reversed (#703) (David) CHG: AgaviExecutionFilter::writeCache() could use third argument with lifetime (#702) (David) CHG: AgaviExecutionContainer::createExecutionContainer() should copy over container parameters (#699) (David) CHG: Improve the speed of array key lookups (#693) (Noah) CHG: Change *val() functions to proper typecasts (#697) (Noah) CHG: dist.htaccess in code templates should have RewriteEngine On (#678) (David) CHG: Bumped and fixed copyright years (#664) (David) CHG: Update timezone database to 2007k (#660) (David) FIX: Given arguments object is not cloned for Container execution if Action is "simple" (#736) (David) FIX: Form Population Filter handles boolean false values incorrectly (#737) (David) FIX: Percent signs are incorrectly escaped in AgaviRouting::parseDynamicSet() (#733) (David) FIX: routing.xsd does not allow dynamic expressions in output_type attribute (#734) (David) FIX: AgaviToolkit::expandVariables replacing is too greedy (#732) (David) FIX: AgaviPhpRenderer::$moreAssigns is not declared or initialized (#729) (David) FIX: AgaviWebRequest cannot map arbitrary HTTP verbs (#725) (David) FIX: AgaviWebRequest does not write all changed factory parameters back (#724) (David) FIX: Charset in Content-Type http-equiv meta tag might be parsed incorrectly (#722) (David) FIX: Generating the current route without additional arguments results in unescaped single quotes and square brackets, potentially incorrectly replaced argument separator (#718) (David) FIX: Generating the current route with additional or changed arguments allows code injections (#717) (David) FIX: Unsetting a user parameter that in a routing callback's onGenerate() was passed to gen() produces strange behavior (#714) (David) FIX: Setting a user parameter that was undefined in a routing callback's onGenerate() has no effect if a default is defined (#713) (David) FIX: Form Population trips over entities in error messages when inserting them into the document (#715) (David) FIX: Routing config handler cannot handle parameter arrays (#712) (David) FIX: XML config parser only applies the xsl stylesheet defined in the first processing instruction (#711) (David) FIX: Execution Filter does not restore cached action attributes on cache hit (#705) (David) FIX: caching.xsd has incorrect rules for elements (#704) (David) FIX: View cache validity check does not use lifetime, might cause usage of stale data (#701) (David) FIX: Container info is not retained on internal forward due to disabled module (#700) (David) FIX: Incoming routing parameters can possibly overwrite routing parameters set in a callback (#698) (Dominik) FIX: AgaviReturnArrayConfigHandler creates an numerical indexed array of elements if child and parent have the same names (#694) (Dominik) FIX: AgaviConfig does not handle empty strings properly (#692) (Noah, David) FIX: onGenerate() method in callback is not run for routes with a source (#695) (David) FIX: Values in long request arrays are not decoded with magic_quotes_gpc on (#684) (David) FIX: WebRouting does not clean up in long request arrays (#685) (David) FIX: WebRouting does not clean up in $_REQUEST (#681) (David) FIX: $HTTP_RAW_POST_DATA is not removed on request startup (#679) (David) FIX: Copies of $_SERVER values in $_ENV are not cleaned (#674) (David) FIX: Request data is not cleaned for variables affected by register_argc_argv or register_long_arrays (#673) (David) FIX: AgaviWebRequest::startup() does not call parent startup() (#677) (David) FIX: AgaviCreoleDatabase does not support various Creole driver settings (#672) (David) 0.11.1 RC1 (December 26, 2007) ------------------------------ ADD: Creole session storage supports configurable date formatting (#639) (David) CHG: Session storages should reveal server error message in exceptions (#645) (David) CHG: Update timezone database to 2007j (#642) (David) CHG: Always send HTTP/1.0 responses in shiny exception template (#620) (David) CHG: Perform special multislash cleanup for all Apache 2.x versions (#619) (David) FIX: Content-Length header is sent regardless of "send_content_length" setting when a redirect is performed in a WebResponse (#659) (David) FIX: Validator names cause parse errors if they don't meet PHP label requirements (#658) (David) FIX: Agavi:boostrap() without arguments ignores writeable core.environment setting (#657) (David) FIX: PDOSessionStorage is unlikely to work properly in case of exceptions (#644) (David) FIX: PHP 5.2.5's completely ruined glob() can lead to unhappy foreach loops (#649) (David) FIX: RotatingLoggerAppender should complain about a rotation cycle smaller than 1 (#654) (David) FIX: validators.xsd is missing the "source" attribute in validators (#653) (Dominik) FIX: FPF's CDATA fix for