forked from agavi/agavi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG-0.11
766 lines (647 loc) · 51.3 KB
/
CHANGELOG-0.11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
AGAVI CHANGELOG (0.11.x)
========================
0.11.8 (July 25, 2009)
----------------------
CHG: Validator shortcut "arraylength" should default to minimum of one element (#1123) (David)
CHG: Update timezone database to 2009k (#1121) (David)
CHG: Remove unnecessary use of create_function() in AgaviInarrayValidator (#1112) (David)
FIX: AgaviArraylengthValidator doesn't work with files (#1122) (David)
FIX: Arrays that failed validation are not purged from request data (#1084) (David)
FIX: Memory leak in AgaviTranslationManager::getLocaleIdentifier() (#1083) (David)
0.11.7 (March 26, 2009)
-----------------------
ADD: Allow setting of session_cache_expire(), session_cache_limiter() and session_module_name() through configuration (#1035) (David)
CHG: Allow control over exporting behavior in combination with argument bases (#1074) (Dominik, David)
CHG: Update timezone database to 2009d (#1070) (David)
CHG: Generated WSDLs should not have namespace attribute on soap:body elements if service is document/literal (#1061) (David)
CHG: Regex validator should export the validated data (#1041) (Felix)
CHG: Throw exception if Apache's SERVER_SOFTWARE env var contains insufficient version information (#1029) (David)
FIX: Exporting parameters from validators with an argument base causes fatal error (#1073) (David, Dominik)
FIX: Fatal error in AgaviArrayPathDefinition::setValue() in combination with arrays (#1075) (David)
FIX: Race conditions in AgaviConfigCache::writeCacheFile() may produce corrupt files (#1072) (Dominik)
FIX: Form Population Filter inserts markup container for validation errors even if there are no messages to insert (#1060) (David)
FIX: AgaviTranslationManager::$translators and $supplementalData are not initialized as empty array (#1045) (David)
0.11.6 (February 4, 2009)
-------------------------
SEC: CVE-2009-0417: Cross-site scripting vulnerability in handling of incoming URLs (#1019) (David)
FIX: Content-Type and Content-Length request headers are treated incorrectly (#1017) (David)
FIX: AgaviWebRequest HTTP PUT support ignores Content-Type header (#1014) (David)
0.11.6 RC2 (January 29, 2009)
-----------------------------
ADD: AgaviResponse::hasContent() (#1007) (David)
ADD: AgaviException::render() should send shell exit code (#990) (David)
ADD: Optionally set 'secure' flag on response cookies automatically (#982) (David)
ADD: Optionally set 'secure' flag on session cookies automatically (#981) (David)
ADD: Add AgaviWebRequest::isHttps() convenience method (#980) (David)
ADD: Allow setting of session save path in AgaviSessionStorage (#979) (David)
CHG: Update timezone database to 2009a (#1013) (David)
CHG: Remove unused property AgaviOperatorValidator::$errors (#987) (David)
CHG: Allow arbitrary number of fractional seconds for parsing date formats (#977) (Dominik)
FIX: Several date classes are lacking type hints in method signatures (#997) (Dominik)
FIX: FPF does not insert error messages or classes for submit buttons (#1011) (David)
FIX: Shiny exception template produces invalid XHTML (#1009) (David)
FIX: Sample App's and code templates' SecureSuccessView responds with a 401 HTTP status code instead of 403 (#1010) (David)
FIX: [EXPLETIVE] Fucking Debian fucking ruined their fucking PHP package once again, and now we need to waste fucking time to fucking fix it (#1008)
FIX: AgaviSoapController does not handle some SoapServer/SoapClient options properly (#1006) (David)
FIX: AgaviCalendar::setTimeInMillis() doesn't explicitly cast value to float (#996) (David)
FIX: AgaviConfigCache::loadConfigHandlers() may trigger "cannot redeclare class" fatal error (#989) (David)
FIX: Caching generates invalid group values in some cases (#988) (David)
FIX: Validation marks fields that weren't processed due to unsatisfied dependencies as sucessful (#984) (Dominik, David)
FIX: Form Population Filter reveals errors from validators with severities "silent" and "info" (#986) (David)
FIX: Validators with argument arrays might not perform dependency checks (#985) (David, Dominik)
FIX: The Milliseconds 1-99 are missing the leading 0 when a date is formatted (#978) (Dominik)
0.11.6 RC1 (January 10, 2009)
-----------------------------
ADD: Add option to control Propel 1.3 instance pooling (#960) (Felix)
ADD: AgaviArraylengthValidator (#948) (Dominik)
ADD: Optionally allow sending of response content when redirecting in AgaviWebResponse (#916) (David)
CHG: Harden path string handling in AgaviArrayPathDefinition (#973) (David, Dominik)
CHG: Change magic_quotes_gpc handling to require PHP 5.2.8 and use the fixes introduced there (#953) (David)
CHG: Re-throw exception instead of printing stack trace and info in exception templates when display_errors is off (#952) (David)
CHG: Add +FollowSymLinks to .htaccess code templates and samples (#893) (David)
CHG: Add more best practices to code templates (#910) (David)
CHG: Use standard layouts etc for system actions instead of hand-built renderers and layers in code templates (#911) (David)
CHG: Always merge slot response metadata even if response content is null (#917) (David)
CHG: Update timezone database to 2008i (#912) (David)
CHG: Add standard warning about broken libxml versions (#909) (David)
FIX: Init queries are not run correctly for Propel 1.3 (#975) (David)
FIX: AgaviWebResponse sends Content-Length header with value 0 even if 'send_redirect_content' option is enabled (#972) (David)
FIX: Using the timezone option in a locale string passed to _d() can possibly change the timezone of the given calendar object (#962) (Dominik)
FIX: AgaviTranslationManager::createCalendar() forgets TZ offset when called with DateTime object (#957) (Dominik)
FIX: Missing variable declaration in AgaviGettextTranslator (#968) (Dominik)
FIX: AgaviWebRequestDataHolder method implementations are all over the place (#955) (David)
FIX: Request data is not cleared if default View is run in absence of suitable Action::execute*() method (#967) (David)
FIX: Slot container created inside a forward container retains "is_forward" parameter (#966) (David)
FIX: Access to global request data holder is not locked during AgaviAction::getDefaultViewName() (#954) (David)
FIX: The class name of AgaviAndoperatorValidator and AgaviNotoperatorValidator don't match the coding guidelines (#951) (David)
FIX: Several validators might raise notices or break altogether on incorrect argument types (#946) (Dominik)
FIX: AgaviValidator::getKeysInCurrentBase triggers a warning if the current validator base is no array (#947) (Dominik)
FIX: FPF error insertion fails if XPath expression yields more than one location in the document (#943) (David)
FIX: Possible to run any action by passing module/action parameters to invalid URL (#934) (David)
FIX: Pattern delimiter is not passed to several preg_quote calls (#939) (David)
FIX: AgaviPropelDatabase::connect() doesn't honor datasource parameter (#937) (David, Sven Kretschmann)
FIX: Invalid CSS in project wizard's WelcomeSuccess template (#928) (TANAKA Koichi, David)
FIX: Converting an AgaviCalendar with a custom unnamed Timezone an DateTime object fails (#922) (Dominik)
FIX: logging.xml and output_types.xml handlers have variable name escaping problems (#921) (David)
FIX: Wrong urls when passing host and port to WebRouting::gen() (#902) (Felix)
FIX: build.xml is missing reset of code templates dir to default before copying dist.htaccess (#914) (David)
FIX: Filename patterns are escaped incorrectly in config_handlers.xml (#913) (Noah)
0.11.5 (October 25, 2008)
-------------------------
CHG: Update timezone database to 2008h (#896) (David)
FIX: AgaviSoapResponse::searchSoapHeader() compares namespaces incorrectly (#892) (David)
0.11.5 RC1 (October 20, 2008)
-----------------------------
FIX: AgaviDatabase::getName() always returns false (#887) (David)
FIX: Validation config handler is broken for nested validators (#886) (David)
FIX: Build system does not create app/log folder in new projects (#881) (David, Noah)
0.11.4 (October 14, 2008)
-------------------------
CHG: Update logging.xml in Sample app and code templates and add "log" dir to Sample app (#879) (David)
FIX: Parameters are not merged in config_handlers.xml (#880) (David)
0.11.4 RC1 (October 2, 2008)
----------------------------
ADD: Allow specifying of doctrine template implementations (#864) (David, TANAKA Koichi)
FIX: Default autoload.xml is missing AgaviMysqliDatabase entry (#868) (David)
FIX: SOAP and XMLRPC test scripts in sample app are broken (#866) (David)
FIX: Certain validator names will cause a fatal error (#863) (David)
FIX: Sample app SearchEngineSpamAction works with invalid product names (#861) (David)
0.11.3 (September 19, 2008)
---------------------------
CHG: Update zoneinfo database to 2008f (#860) (David)
CHG: Improve sample app SearchEngineSpamAction to use ID and optionally name (#859) (David)
FIX: AgaviXmlrpcepiphpResponse::setHttpStatusCode() is not implemented but gets called in sample app Error404SuccessView (#849) (David)
0.11.3 RC2 (September 9, 2008)
------------------------------
ADD: Allow runtime configuration of Smarty via parameters in AgaviSmartyRenderer (#846) (David, TANAKA Koichi)
ADD: Caching group element with array value support (#809) (David)
ADD: Allow convenience array index access in AgaviAttributeHolder (#843) (David)
CHG: AgaviSmartyRenderer should not set a Smarty plugins dir (#848) (David)
FIX: Empty redirect in response may cause uninitialized string offset notice (#847) (David)
FIX: AgaviParameterHolder::removeParameter() does not try literal key lookup first (#842) (David)
FIX: module.xml must not be per-context (#839) (David)
0.11.3 RC1 (August 31, 2008)
----------------------------
ADD: AgaviMysqliDatabase (#601) (Blake Matheny, David)
ADD: Add config option to run arbitrary SQL commands after connecting to a database (#646) (David)
ADD: Allow ignoring of (X)HTML parse errors in FPF (#613) (David)
ADD: Set current Context instance on Doctrine connections (#800, #808) (David)
ADD: Assigning of "inner" content to $slots template array should be configurable (#793) (David)
ADD: Support for doctrine connection settings and options (#788) (David)
ADD: Allow using the resolved datetime constants for the argument names in the datetime validator (#760) (Dominik)
CHG: Improve AgaviInflector performance (#823) (Thomas Bachem, David)
CHG: Change the Pricefinder Model in the Sample App to have a more useful name (#819) (Felix)
CHG: Enhance HTTP status code validation for AgaviWebResponse::setRedirect() (#804) (David)
CHG: Update timezone database to 2008e (#806) (David)
CHG: Dump "xhtml" output type from sample app and introduce a replacement (#802) (David)
FIX: AgaviEqualsValidator's docs do not match the actual validation process (#833) (Dominik)
FIX: Invalid argument name in AgaviValidationManager::hasError() (#832) (David)
FIX: The gettext translator doesn't interpret the plural forms like the original gettext implementation (#821) (Dominik)
FIX: AgaviView::initialize() incorrectly assigns container's response to a property (#813) (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 <configuration> (#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 <action_attribute> 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 <style> and <script> tags corrupts one-liners in HTML parsing mode (#652) (David)
FIX: Code to remove potential duplicate xmlns attributes in FPF's HTML parsing mode does not work with certain libxml versions (#650) (David)
FIX: libxml bug may lead to "attribute redefined" errors in FPF in HTML parsing mode (#651) (David)
FIX: Undefined variable notice in AgaviValidationManager::hasIncidents() (#640) (David)
FIX: Creole and PDO session storage incorrectly force garbage collection on session open (#638) (David)
FIX: AgaviMysqlSessionStorage uses mysql_escape_string() instead of mysql_real_escape_string() (#637) (David)
FIX: Database session storage implementations have incorrect read/write behavior (#636) (David)
FIX: Some database session storages do not work with non-integer date() results. (#635) (David)
FIX: Global request data is serialized in execution containers (#633) (David)
FIX: Forwarding does not honor output types properly (#629) (David)
FIX: Global request data is not locked during rendering of templates (#628) (David)
FIX: Nested XIncludes cause segfault due to PHP bug (#621) (David)
FIX: AgaviToolkit::mkdir might throw errors on concurrent directory creation (#615) (Dominik)
FIX: WebRouting::gen() encodes additional parameters twice (#622) (David)
FIX: Trailing ampersands and other special cases might still confuse the routing under some circumstances (#618) (David)
0.11.0 (November 3, 2007)
-------------------------
ADD: Allow simpler format definitions in DateTime validator (#596) (David)
CHG: Update timezone database to 2007i (#610) (Dominik)
FIX: Adapt olson timezone generation task to agavi changes (#611) (Dominik)
FIX: Optional route params are generated incorrectly under certain circumstances (#609) (Dominik)
FIX: Incorrect handling of HTTP/1.0 requests (#604) (David)
FIX: Caching leaves room for potential race condition (#608) (David)
FIX: AgaviFormPopulationFilter calls fromUtf8 without $this-> (#606) (Veikko)
FIX: Template layers do not expand empty parameters in formatting strings (#603) (David)
FIX: Routing callbacks cannot set additional arguments that are not in the pattern (e.g. extra query args) (#602) (David)
FIX: Strict standards violation in AgaviPdoSessionStorage (#600) (Veikko)
FIX: Routing gets confused by a trailing ampersand in the query string under some circumstances (#599) (David)
0.11.0 RC7 (October 23, 2007)
-----------------------------
ADD: Default extension of renderers can now be configured directly via "default_extension" parameter (#594) (David)
ADD: Exception templates show current date and time (#595) (David)
ADD: Pass on "is_slot" flag in View::createForwardContainer() (#591) (David)
CHG: Use gmdate() in config handlers to prevent strict notices about timezone settings (#590) (David)
FIX: View::appendLayer() and View::prependLayer() break when given a second argument (#593) (David)
FIX: core.skip_config_validation logic is inverted (#592) (David)
0.11.0 RC6 (October 12, 2007)
-----------------------------
ADD: Allow setting of the affected arguments in a validator via throwError() (#568) (Dominik)
ADD: __sleep() and __wakeup() magic methods for AgaviModel to prevent Context serialization (#581) (David)
ADD: Ability to insert error messages into forms automatically using FormPopulationFilter (#303) (David, Ross Lawley)
ADD: AgaviWebResponse::unsetCookie() (#577) (David, Ross Lawley)
ADD: AgaviDoctrineDatabase (#381) (David, Ross Lawley)
ADD: Support for error class name maps in FormPopulationFilter (#575) (David)
ADD: AgaviDatabase::startup() (#573) (David)
ADD: AgaviDatabase::getName() (#572) (David)
ADD: Cache group sources "request_data" and "global_request_data" (#571) (David)
ADD: Make format used to insert dates and times configurable in database session storage adapters (#569) (David)
ADD: Allow overriding of specific Propel runtime config directives via databases.xml (#567) (David)
ADD: Added force_request_uri and force_request_url config options to FPF ([2066]) (David)
ADD: Allow true as value for "org.agavi.filter.FormPopulationFilter"/"populate" to force use of global request data (#556) (David)
ADD: Accept date/time strings as message for date formatter (#555) (David)
ADD: AgaviEzctemplateRenderer (#326) (Felix Weis, David)
ADD: Allow disabling of XML config validation (#552) (David)
ADD: Allow logging of FormPopulationFilter parse errors (#543) (David)
ADD: Add Agavi information to X-Powered-By header (#542) (David)
ADD: Add LoggerManager::getDefaultMessageClass() (#539) (David)
ADD: Support for SOAP faults (#532) (David, Noah Fontes)
ADD: Support for SOAP response headers (#531) (David)
ADD: Allow relative paths to xsd files in XML Schema Instance *schemaLocation attributes (#530) (David)
CHG: Introduce new severity "info" and map now deprecated "none" to "silent" (#585) (Dominik)
CHG: Validators with same names, but for different request methods, overwrite each other properly now (#582) (Dominik)
CHG: Drastically improved performance and memory consumption of AgaviToolkit::expandDirectives() and AgaviToolkit::expandVariables() ([2092], [2093], [2127]) (David)
CHG: Make Agavi ready for PHP6 (#563) (Noah Fontes, David)
CHG: Make viewInstance available in the execution container (#557) (David, Ross Lawley)
CHG: Made AgaviRenderer an AgaviParameterHolder (#553) (David)
CHG: Removed bash dependency from agavi build script (#546) (David, simoncpu)
CHG: Change agavi.release directive to use a slash instead of a space as the name/version delimiter (#541) (David)
CHG: Bumped minimum required PHP version to 5.1.3 (#456) (David)
FIX: Unvalidated arguments are left behind by non-required validators if those have multiple arguments and did not run (#578) (Dominik)
FIX: AgaviToolkit::clearCache() throws errors if path doesn't exist (#584) (Dominik)
FIX: Routing callbacks cannot set optional parameters (#579) (David, Dominik)
FIX: Request should be locked in View's constructor and initialize() methods (#544) (David)
FIX: Error control operator in AgaviToolkit::mkdir() might be problematic (#576) (Dominik)
FIX: Default database exists twice in the databases array, thus is shutdown twice (#574) (David)
FIX: Agavi validation manager is missing the declaration of $incidents (#566) (Dominik)
FIX: FilterChain resets run count for each registered filter; thus executeOnce() does not work as intended (#565) (David)
FIX: User-agent check in shiny exception template can throw errors (#564) (Noah Fontes)
FIX: WebRouting::gen() ignores 'separator' option when generating existing routes (#545) (David)
FIX: <route action=".Something" /> confuses template location code (#540) (David)
FIX: AgaviPropelDatabase returns null in getConnection when used with Propel 1.2 (#538) (Dominik)
FIX: "shiny" exception template may generate invalid markup if HTML is at first line of code snippet (#537) (David)
FIX: AgaviToolkit::expandVariables() skips null arguments (#536) (David)
FIX: AgaviParameterHolder::hasParameter() etc return false for keys that have a null value (#535) (David)
FIX: AgaviExecutionFilter::clearCache doesn't clear the content cache properly (#534) (Veikko)
FIX: Output messages with multiple parts break SOAP completely (#533) (David)
FIX: Missing param declaration in wsdl.xsl might lead to corrupt response message blocks in generated WSDL (#529) (David)
0.11.0 RC5 (June 18, 2007)
--------------------------
ADD: Add extension points to XML Schema definitions where feasible (#515) (David)
ADD: Support for XML Schema instance schema location declarations (#517) (David)
ADD: AgaviNullStorage (#523) (David)
ADD: Experimental(!) support for native XML config handlers, base work for XML-only configuration system (#519) (David)
ADD: Support for XSL stylesheets in configuration files (#509) (David)
ADD: Support for XML namespaces in configuration files (#508) (David)
ADD: SOAP Support (#301) with automatic WSDL generation (#514) (David)
ADD: Interface for AgaviLogger (#507) (David)
ADD: Allow routing callbacks to unset parameters by setting them to null (#505) (Dominik)
ADD: Set "exception" in "org.agavi.controller.forwards.error_404" (#496) (David)
ADD: Allow setting response content by returning data from View::execute*() (#503) (David)
ADD: Support for configuration directives in href attributes of XInclude <include> elements (#488) (David)
ADD: DateTime cast support for AgaviDateValidator (#475) (Dominik)
ADD: Support for magic_quotes_gpc, including proper handling of indices in and outside of arrays as well as $_FILES
ADD: Method to convert AgaviCalendar objects into native PHP DateTime objects ([1836]) (Dominik)
ADD: Support for UTF-8 in StringValidator via parameter 'utf8', default on ([1820]) (David)
ADD: Ability to prevent sending of the response in Controller::dispatch(), which now always returns the final (not global!) response (#469) (David)
ADD: Made default layer class configurable via 'default_layer_class' config parameter for AgaviOutputTypeConfigHandler ([1800]) (David)
CHG: Deprecate AgaviConfigHandler::literalize() and AgaviConfigHandler::replaceConstants() (#526) (David)
CHG: Improvements for FPF's charset detection, now uses output type's http_headers Content-Type value if possible ([1982]) (David)
CHG: Updated zoneinfo database to 2007f (#524) (David)
CHG: Ability to get empty data instead of exceptions when accessing locked request data (#512) (David)
CHG: Display full list of complete paths of templates tried when displaying "template not found" exception (#497) (David)
CHG: Support for empty language blocks in SimpleTranslator (#483) (Dominik)
CHG: Support for empty translation domain in SimpleTranslator (#482) (Dominik)
CHG: Update timezone database to 2007c release ([1873]) (Dominik)
CHG: More features and improved consistency for AgaviReturnArrayConfigHandler (#463) (David)
CHG: Deprecate request attribute "matchedRoutes" in "org.agavi.routing" in favor of "matched_routes" (#465) (David)
FIX: Resolved most double-slash issues under Apache 2.2 (#502) (David)
FIX: XMLRPC Request and Response cause strict warnings, fatals, notices (#528) (David)
FIX: Agavi's autoloader fails if Agavi has not been bootstrapped yet (#521) (David)
FIX: Fixes for AgaviEmailValidator (#486) (Dominik)
FIX: Correct standalone declarations for all XML configs (#518) (David)
FIX: "agavi project" does not create stub translation.xml (#516) (David)
FIX: Character escape sequences in CLDR data are not evaluated (#478) (Dominik)
FIX: AgaviInarrayValidator throws missing argument error (#506) (Dominik)
FIX: Quoted parts in date patterns might result in incorrect output (#513) (Dominik)
FIX: Form Population Filter does not recognize action URLs with fragment identifier (#510) (David)
FIX: AgaviUploadedFile notice in destructor due to ArrayObject bug (#511) (David, Ross Lawley)
FIX: PUT file uploads might leave stale temporary file behind (#479) (David)
FIX: Incorrect Content-Length header might delay HTTP "Locaation:" redirects (#504) (David)
FIX: Prevent parse_url issues in request URIs that contain "://" (#494) (David)
FIX: Corrected caching behavior in case neither <layer> nor <layers> elements are present in the config (#501) (David)
FIX: Enabled attribute in caching configuration has no effect (#500) (David)
FIX: Check for existance of default database connection to prevent potential error (#485) (David)
FIX: User credentials routing source broken (#493) (Dominik)
FIX: Broken AgaviInarrayValidator (#490) (Felix Gilcher, Dominik)
FIX: Workaround for missing "file" stream proto in default Suhosin configurations (#484) (David)
FIX: <parameter> nodes with numeric names (#481) (Dominik)
FIX: AgaviCalendar::getNativeDateTime() has one month offset (#474) (Dominik)
FIX: Fix date parsing for 1-12 hour formats (#472) (Dominik)
FIX: Typos and too greedy exception catching in some validators ([1829], [1831]) (David, Dominik)
FIX: Workaround for broken stream_get_wrappers() in Debian and Gentoo (and probably others) in latest PHP packages for versions < 5.2.1 thanks to, did I mention it yet, clueless Linux package maintainers who constantly manage to ruin their very uncool, very wrongly patched PHP versions ([1824]) (David)
FIX: Suppress warning in AgaviImageFileValidator when a valid file, but no image is uploaded (#471) (David)
FIX: Don't use unicode character properties in regular expressions, thanks to all the clueless Linux package maintainers who disable those even though they're on as default (just like they do it with DOM and other default stuff) ([1809], [1810]) (David)
FIX: Make the pear package task create .keep files in empty dirs ([1807]) (David)
FIX: When using 0 as default value for an optional parameter gen() could skip the parameter (#464) (Dominik)
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 <configuration> 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 <layer> 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 <translator> 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 <sandbox> element inside <configurations> 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 <settings> 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 (#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)