AGAVI CHANGELOG =============== 0.11.0 (????? ??, 2007) 0.11.0 RC4 (February 25, 2007) ADD: Throw exceptions in case PCRE operations fail (like with corrupt UTF-8 input) in FormPopulationFilter (#461) (David, Veikko) FIX: XML-RPC support broken completely (#459) (David) FIX: Handling of multiple blocks is broken in FactoryConfigHandler (#458) (David) FIX: ExecutionFilter throws notice/warning while trying to determine slot cacheability status (#457) (David) FIX: Using date translator with a custom format doesn't work (#455, #460) (Dominik, David) 0.11.0 RC3 (February 22, 2007) ADD: Allow specifying per-locale formats for formatters as children to the parameter node (#453) (David) ADD: Allow non-absolute URLs for WebResponse redirects (#449) (David) ADD: AgaviRequest::isLocked() ([1728]) (David) ADD: Make AgaviRequestDataHolder classes configurable (#438) (David) ADD: Allow retrieval of the translators/formatters for a defined domain (#417) (Dominik) ADD: Routing generation options presets (#432) (David) ADD: Support for X-Sendfile family of headers in AgaviWebResponse (#431) (David) ADD: AgaviRbacUser::grantRoles (#430) (David) ADD: Translation for error messages in sample app (#416) (David) ADD: Use base path from routing if null path given to AgaviWebResponse::setCookie, assume same base path for session cookies (#425) (David) ADD: strtotime strings support for AgaviWebResponse::setCookie and session cookie lifetime (#423) (David) ADD: AgaviOutputType::getDefaultLayoutName() ([1689]) (David) ADD: Allow PHP 5.2 DateTime objects to be used with _d() (#420) (Dominik) ADD: AgaviDateFormatter::getFormat ([1683]) (Dominik) ADD: Add isContentMutable method to response and check where applicable (#414) (David) CHG: Made "class" attribute for elements optional in output_types.xml (#454) (David) CHG: Routing: use matched incoming parameters for same route generation on a hierarchial basis (#444) (Dominik) CHG: Update timezone database to 2007b release (#443) (Dominik) CHG: Translation Manager should call localeChanged on message translators (#447) (Dominik) CHG: Cleaned up config handlers ([1737]) (David) CHG: Fix $_FILES array only if no AgaviUploadedFile is in the request data ([1736]) (David) CHG: Don't hardcode AgaviUploadedFile class name and make that non-final ([1735]) (David) CHG: Update Unicode CLDR Data to release 1.4.1 (#442) (Dominik) CHG: Deprecated Request::getModuleAccessor() and Request::getActionAccessor() ([1720]) (David) CHG: Move pre- and postfix modification from defaultParams to userParams argument in RoutingCallback::onGenerate (#436) (Dominik) CHG: Allow returning of true or false from RoutingCallback::onGenerate() (#435) (Dominik) CHG: startup() methods for all core classes, shuffled initialization order (#433) (David) CHG: Store salted hash for autologon password in sample app, clean up sample app user implementation to serve as a better example (#429) (David) CHG: Make AgaviLocale a ParameterHolder, clean up Translation Manager method names, add caching of locale instances, add default locale getters (#426) (David) CHG: Removed 'Index' action auto-resolving from AgaviController::resolveAction (#424) (David) CHG: Allow nested tags (#422) (Dominik) CHG: auto assign 'validation_manager' in templates ([1691]) (David) CHG: Allow extra domain info to be passed to formatters (#419) (Dominik) FIX: Operator validators don't work with required=false (#451) (Dominik) FIX: Better handling of i18n off in NumberValidator and DateValidator [1753] (Dominik) FIX: Small bug in SimpleTranslator (#446) (Dominik) FIX: Some OperatorValidators are broken (#445) (Ross Lawley, David) FIX: Issue where request data "garbage" from a rewrite wouldn't be removed in routing initialize ([1732]) (David) FIX: Storage must check if the routing it is grabbing a "better" base path from for the session cookie is a WebRouting instance ([1730]) (David) FIX: AgaviWebserviceRouting method signature ([1729]) (Dominik) FIX: Possible exception in shiny.php exception template while request is locked ([1728]) (David) FIX: The currency formatter doesn't use the fraction information from the CLDR data (#439) (Dominik) FIX: When you manually set the currency symbol not the literal symbol should be used but the iso currency code (#440) (Dominik) FIX: Using currency formatters with a custom format doesn't work (#441) (Dominik) FIX: 0 as default value for routes skipped in route generation (#437) (David) FIX: Do not override default values using matched incoming parameters when generating the same route unless the route is implied (#434) (Dominik) FIX: Routing->gen() could possibly not remove unused parameters from the url when an url depends on multiple routes (#428) (Dominik) FIX: addIncident not using the validator of the incident for submitting field results ([1685]) (Dominik) FIX: In Sample App: Call to undefined method setError() (#415) (Veikko, codecop) 0.11.0 RC2 (February 7, 2007) ADD: Add convenience container creation methods to view (#410) (David) ADD: Allow streams as response content (#408) (David) ADD: Add support for lightweight actions (#407) (David) ADD: Allow element inside to make xincludes easier (#404) (David, Dominik) ADD: Allow AgaviLoggerManager::log() to accept strings for convenience (#401) (David) ADD: added isnotempty validator which provides what the issetvalidator has been in earlier versions (#359) (Dominik) ADD: Allow modification of options in callbacks for gen() (#395) (David) ADD: Support for HTTP PUT file Uploading (#393) (David, Ross Lawley) ADD: Allow the validation to validate different kinds of sources (request parameters, cookies, http headers, files) (#367) (Dominik) ADD: Allow multiple blocks with alternative prefix in settings.xml (#375) (Dominik) ADD: Add wildcard support to "environment" and "context" attributes (#374) (David) ADD: Add a TimestampLoggerLayout (#372) (David) ADD: Improve some aspects of file handling (#369) (David) ADD: Allow square bracket syntax when retrieving cookies. (#368) (David) ADD: Re-Introduce per-Output-Type exception templates (#357) (David) ADD: Allow only setting the locale options in the translation methods (#62) (Dominik) ADD: Add ability to include proto, host, port and hash in WebRouting::gen() (#358) (David) ADD: Add option to GettextTranslator that writes all translation calls to a PHP file (#356) (David) ADD: The translation formatters can have their format strings translated now (#62) (Dominik) ADD: Allow validation error messages to be translated (#62) (Dominik) ADD: Added an simple translator which stores translations directly in the translation configuration file. (#62) (Dominik) ADD: Filter possibilities for translators and formatters (#62) (David) ADD: Ability to parsing string numbers into php native numbers (int/float) (#62) (Dominik) ADD: Ability to parse a date from a string with a custom defined format (#62) (Dominik) ADD: Methods to retrieve locale timezone information (#62) (Dominik) ADD: Allow setting of connection options or attributes in the pdo database handler (David, Dominik) ADD: Add a CachingExecutionFilter (#78) (david) CHG: Ignore "Content-Type" parameter in output types and use values in generic "http_headers" parameter instead (#413) (David) CHG: Move error information into containers (#406) (David) CHG: Make validators use the same initialition strategy as the rest of the framework (#403) (Dominik) CHG: Dropped XslRenderer (#400) (Noah Fontes) CHG: Move AgaviUser initialization location and add a startup() method (#398) (David) CHG: Use libxml error handling for XML parsing and FPF (#396) (David) CHG: Remove 0.9.0 backwards compatibility in PropelDatabase (#392) (David) CHG: Make uploaded file handling really painless (#391) (David) CHG: Introduce RequestDataHolder (#389) (David, Dominik) CHG: Make sources for server name etc configurable in WebRequest (#388) (David) CHG: Renamed date validator to datetime validator (#385) (Dominik) CHG: Renamed AgaviValidatorManager in AgaviValidationManager (#384) (Dominik) CHG: Get rid of rendering filters (#377) (David) CHG: Remodel execution flow (#373) (David) CHG: Allow setting max forwards of the controller to '0' (#373) (David) CHG: Fix some of the borderline inoperable ugliness of the validation system (#367) (Dominik) CHG: Remove validatormanager argument from Action::registerValidators() (#360) (Dominik) CHG: Improve validators (#359) (Dominik) CHG: Renamed 'type' attribute for translators and formatters to 'class' (#62) (David) CHG: Allow pluralized parent tags to be omitted in most places in the configuration files. (Dominik) FIX: Orphan trailing & in URLs messes up routing base href detection when rewritten (#409) (David) FIX: Error information is lost as soon as slots are run (#405) (David) FIX: AgaviUploadedFile::move() creates world writeable files and directories by default (#402) (David) FIX: AgaviDecimalFormatter strips sign of number to format (#399) (Dominik) FIX: AgaviPdoSessionStorage corrupts session's data if it includes special characters (#397) (Veikko) FIX: Add compile.xml contents to autoload.xml (#390) (Veikko) FIX: AgaviCompileConfigHandler::formatFile doesn't handle files with special characters (#394) (Veikko) FIX: URLs relative to the base href are not matched by the form population filter (#387) (David) FIX: Base Href and Base Url not available from WebRouting with routing disabled (#386) (David) FIX: Exception is raised when no logger called "default" is configured (#371) (David) FIX: Fix validators not inheriting the severity of their parent (#269) (Dominik) FIX: Same logging appenders are shut down multiple times if used by multiple loggers (#366) (David) FIX: WebRouting::gen() does not accept arrays as query string arguments (#365) (David) FIX: Argument skipping by supplying null yields a question mark at the end of the URL (#364) (David) FIX: The h and k hour pattern are wrongly implemented in date formatting (#363) (Dominik) FIX: A validator using the argument base fails for multiple arguments the last error will overwrite all previous ones (#362) (Dominik) FIX: Setting the base for arguments in file validators doesn't work (#361) (Dominik) FIX: Routing w/o rewrite borked when path contains a space character (#355) (David) FIX: Fixes to the date formatter (#62) (Dominik) FIX: Fixed Form Population Filter for radiobuttons, fields containing [] (#327) (David) 0.11.0 RC1 (November 13, 2006) ADD: Add a PdoSessionStorage (#354) (Dominik) ADD: Allow the default logger to have a different name then default (#351) (Dominik) ADD: Make app dir name and template extension configurable for agavi cmdline script (#348) (Veikko) ADD: Add Controller, Request, Response and Routing for handling RESTful requests (#332) (David) ADD: Add RBAC User implementation (#320) (David) ADD: Allow passing of additional request params to slots (#318) (David) ADD: Add methods to retrieve View name and View's module name from ActionStackEntry (#317) (David) ADD: Add support for PHP 5.2 httpOnly cookie flag (#314) (David) ADD: Make creation of "run once" action and rendering filters easier (#307) (David) ADD: Add Controller, Request, Response and Routing for handling XMLRPC requests (#302) (David) ADD: Add a RotatingFileAppender (#294) (Veikko) ADD: Add an option that stores slots in a separate variable (#282) (David) ADD: Add support for IndexAction auto-discovery in sub-actions (#279) (David) ADD: WebRequest is missing hasCookie() method (#257) (David) ADD: Add a Response class (#187) (David) ADD: Make as many configuration files optional as possible (#165) (David) ADD: CompileConfigHandler needs optional "debug" mode (#147) (David) ADD: Add support for Output Types (#141) (David) ADD: Implement support for system configuration files (#130) (Dominik, David) ADD: Add getAttributes() method to User (#114) (David) ADD: Add namespaces support to Request attributes (#104) (David) ADD: Add Storage::startup() (#101) (Veikko, David) ADD: Add a PHPTALView (#98) (David) ADD: agavi project should create default error actions and set the correct modules in settings.xml (#89) (Veikko) ADD: Add option for persistent connections in PDODatabase class (#87) (David) ADD: Form validation and re-population filter (#79, #284, #327) (David) ADD: Introduce build.properties (#77) (David) ADD: Pluggable LoggerManager and ValidatorManager (#76) (David) ADD: Allow per-context/per-environment configurations (#72) (David, Dominik) ADD: Implement support for per-module autoload.xml (#71) (David) ADD: Write tests for new features, more tests for everything, PHPUnit2(+3?) (#65) (Dominik, David) ADD: i18n & l10n (#62, #335) (Dominik, David) ADD: Routes / Paths / Trails / Yipee more elegant/flexible URL handling (#52, #247, #280) (David, Dominik, Veikko) ADD: Module Based Custom Build Templates (#42) (Benjamin Muskalla, David) CHG: Bump minimum required PHP version to 5.1 (#329) (David) CHG: Consider renaming logging classes (#323) (Veikko) CHG: Ditch View::executeContextname() support and add executeOutputtypename() support instead (#321) (David) CHG: Add "literal" argument to View::set(Decorator)Template() (#315) (David) CHG: Throw out Request::extractParameters() (#309) (David) CHG: Change the way forwards are done by users (#306) (David) CHG: Change ActionStackEntry to use a float for the microtime (#300) (David) CHG: Move autoloading to a separate method and use either __autoload() or spl_autoload_register() (#299) (David) CHG: Rename "webapp" and "www" folders to something more generic (#298) (David) CHG: Loggin priority constants should be powers of two and logging priority should be defined as a bitmask (#296) (Veikko) CHG: Pass cleaned and validated request parameters to Action::execute() (#281) (David) CHG: Rewrite Validators (#75, #91, #102, #269, #276) (Uwe Mesecke, Dominik) CHG: Move global models dir to webapp/models (#267) (David) CHG: Rename BasicSecurityUser and BasicSecurityFilter (#256) (David) CHG: Make SecurityFilter an interface (#255) (David) CHG: SecurityUser should be an interface (#253) (David) CHG: Move shutdown procedure to Context (#182) (David) CHG: Harmonize template variable names, add name and extracting support to all Renderers (#180) (David) CHG: Rename AgaviHTTPSRequest to AgaviSecureWebRequest (#166) (David) CHG: Cleanup redundant files (#162) (David) CHG: Repeatedly used classes lack parameter support (#160) (David) CHG: Database Connections must be unique per Context (#159) (David) CHG: Standardize initialize() methods (#157) (David) CHG: clean up new Foo() vs Foo::newInstance($blah) mess (#156) (David) CHG: Clean up Context and Controller (#155) (David) CHG: Settle on an approach for handling Filter instances (#154) (David) CHG: Rewrite Model support (#153) (David) CHG: Rename (Action|User)::(get|has)Credential to (Action|User)::(get|has)Credentials (#152) (David) CHG: Remove Controller::inCLI() (#151) (David) CHG: Throw out ShutdownListeners (#149) (David) CHG: Abstract Request Methods and make their handling in Actions more intuitive (#148) (David) CHG: Improve exception output (#95, #146) (David) CHG: Standardize Controller::dispatch() signature and drop Front/Page Web Controllers (#143) (David) CHG: Rework Filter support (#142, #254) (David) CHG: Make all classes properly CamelCased (#140) (David) CHG: Decouple rendering from Views (#139, #179) (David) CHG: PHPDoc comments are here and there poorly formated (#137) (Veikko) CHG: Introduce a "registry" class to get rid of all those constants (#129) (David) CHG: Add support for environments and change the job of contexts (#128) (David) CHG: restructure config handling (#70, #124, #125, #271, #292, #322) (David, Dominik) CHG: Change bookstrapping method (#122) (David) CHG: Switch to PHPUnit2 (#121) (Dominik) CHG: Change default attribute namespaces so they use dots instead of slashes (#115) (David) CHG: Change Request::getAttribute() argument order to be consistent with User's (#113) (David) CHG: Consider moving attributes/namespaces functionality into a separate class (#111) (David) CHG: Add "agavi" package phpdoc comments to all files in src/buildtools/ (#108) (David) CHG: Make private class members protected where feasible (#107) (Veikko) CHG: webapp/cache folder should use subdirs (#106) (David) CHG: Move setCookie from WebRequest to WebController and add setContentType() and setHeader() methods (#103) (David) CHG: Support Creole's (and thus Propel's) trimming / case sensitivity change (#88) (David) CHG: Remove AgaviObject (#85) (David) CHG: Remove FormPHPView (#84) (David) CHG: Remove ConversionPattern (#83) (David) CHG: Remove MailAppender (#82) (David) CHG: Check if we can allow switching contexts at runtime (#74) (David) CHG: Rename all classes to have an "Agavi" prefix (#41) (Dominik) CHG: Make the framework E_STRICT compliant and remove all those "&"s (#34) (David) FIX: use of unititalized variable in AgaviWebRequest::getFileError() (#305) (David) FIX: Logging layouts need context and they need to be initialized even if there are no parameters (#297) (Veikko) FIX: Appender needs context and needs to be initialized even if there are no parameters (#295) (Veikko) FIX: Controller::getView() should throw an Exception if View is ultimately not found closed (#268) (David) FIX: User must be available even with security disabled (#261) (David) FIX: Controller::getAction() should throw an Exception if Action is ultimately not found (#252) (David) FIX: Return subaction view with array syntax (#176) (David) FIX: Database instances need to know their DatabaseManager (#158) (David) FIX: What the hell is session_write_close() doing in Controller::shutdown() (#150) (David) FIX: CompileConfigHandler is too greedy (#127) (Blake Matheny) FIX: SmartyView::setAttributesByRef is broken (#126) (Veikko) FIX: creole session storage is missing a throw in sessionwrite (#120) (Dominik) FIX: Request::removeError shouldn't return by reference (#110) (David) FIX: Some @since comments say "2.0.0" (#109) (David) FIX: DatabaseManager doesn't know the context (#100) (David) FIX: Template collisions with SmartyView (#97) (David) FIX: The SmartyView should include Smarty.class.php in a more "correct" way. (#92) (Veikko) FIX: agavi script doens't work on Solaris (#90) (David) FIX: Some tests will not work on windows (#64) (David) FIX: Building many modules/actions etc. will make agavi run out of memory (#35) (David) 0.10.2 (February 27, 2006) CHG: Changed to new PEAR package task, package.xml v2 format, using PEAR channel pear.agavi.org (David) CHG: Declared API stability alpha (David) FIX: Fixed PHP 5.0.5 / 5.1 return by reference problem in logging/PassthruLayout (Markus Lervik, David) FIX: Fixed incorrect Phing dependendy (David) 0.10.1 (January 6, 2006) FIX: Fixed critical bug that prevented parameters to be passed in config_handlers.ini 0.10.0 (December 20, 2005) CHG: Updated TODO CHG: Bumped Version Numbers FIX: ReturnArrayConfigHandler did not convert foo.bar.baz keys into multi-dimensional arrays FIX: RELEASE_NOTES and INSTALL were missing in AgaviPackageTask 0.10.0 RC1 (December 16, 2005) ADD: ShutdownListener support (Veikko) ADD: Cookie support for WebRequest (Veikko) ADD: Session Cookie parameter support (Veikko) ADD: CreoleSessionStorage (Veikko) ADD: HTTPSRequest (Markus Lervik, David) ADD: XSLView (Wes Hays) ADD: AdoDBDatabase (Steven Weiss, David) ADD: Sub-actions support for "agavi" helper script (David) ADD: code_templates have Template templates (David) ADD: Multiple credentials support (David) ADD: Support for setting session ID in SessionStorage (Mike) ADD: Constants support for config files (Bob, Johan) ADD: Logging functionality (Bob) ADD: WEBAPP_NAME setting in settings.ini (Mike) ADD: Request::getAttributes() (Bob) ADD: Auto-detection of modules for "agavi" helper script when executed inside or below a module's dir. ADD: ReturnArrayConfigHandler (David, Mike) ADD: Support for custom ExecutionFilters (David) ADD: Support for Singleton Models (David) ADD: FormPHPView (xardion) ADD: ValidatorManager, DateValidator (Graeme Foster, Mike) ADD: Test directory structure and stubs are auto-created when using the "agavi" helper script to add stuff. ADD: Advanced Propel integration via PropelAutoload, PropelDatabase still backwards compatible to old method (David) ADD: appendAttribute() methods for Request, User and View (Bob) CHG: Unified parameter names for database users to "username" everywhere (Veikko, David) CHG: Beefed up NumberValidator with min/max and integer support (Veikko) CHG: All AG_* configuration directives except AG_WEBAPP_DIR are optional (David) CHG: AG_WEBAPP_DIR and AG_APP_DIR will be auto-determined if possible (David) CHG: Action and View class names can now also be like Module_Some_Sub_MarineAction (and also Some_Sub_MarineAction) CHG: Config Handlers will throw UnreadableExceptions when appropriate (David) CHG: Added some helper methods and changed visibility of some methods in Views to allow for more control in ExecutionFilters (David) CHG: SmartyView uses the SMARTY_CACHE_DIR setting if set, AG_CACHE_DIR otherwise. CHG: Realigns configuration away from configuring controllers to configuring contexts (Mike) CHG: autoload.ini handling changed to support include_path (Bob) CHG: Autoload support for Controller::getGlobalModel() (Mike) CHG: Refactored helper script (Mike) CHG: Reworked Test infrastructure (Mike) CHG: Improved, changed and refactored many, many tests and the intrastructure for tests; "agavi test" runs tests (Mike) FIX: PHP 5.1 compatibility for ConfigCache::getCacheName() (Markus Lervik, David) FIX: Re-wrote broken directory and module recognition routines in AgaviFixPathsTask, fixed "agavi model" to work correctly (David, Miroslaw Wrobel) FIX: __autoload() won't throw exceptions anymore (Veikko) FIX: Plain text formating for AgaviException::printStackTrace (Veikko) FIX: Autostart sessions only after all initializations have finished (Veikko) FIX: Action::validate() to be called even when a ini validation criteria failed (David, Steven Weiss) FIX: Support for username and password in PDODatabase (David, Benjamin Muskalla) FIX: PHP 5.1.0 Compatibility for PDODatabase (David) FIX: Strict comparison for credentials (David) FIX: Avoid notices in ValidatorManager (Bob) FIX: Request::extractParameters() returns null for non-existent parameters (Mike) FIX: Set a default if calling agavi action from inside a module's dir or subdirs (Mike) FIX: Windows support for helper script (David) FIX: Use proper type "::" or "->" in stack trace (David) 0.9.0 (June 8, 2005) - Initial Release