Releases 0.11

nateabele edited this page Oct 17, 2012 · 9 revisions

Lithium 0.11

Released 2012-10-11

Summary

  • ~700 commits
  • > 60 contributors
  • ~16 months (sorry!)

New Features

API Breaks

  • Property rename: net\http\Request::$params is now net\http\Request::$query
  • Method removed: net\http\Service::connection(); the connection is now accessible through a public $connection property
  • Static calls to invokeMethod() with more than 5 parameters may experience inheritance issues (see 2a6ccf7 for details)
  • The second parameter to Command::columns() has changed to enable colorized output
  • The Form auth adapter now uses bcrypt by default, instead of SHA-hashing and querying; see the documentation for how to configure the adapter to follow the previous behavior (refer to the Pre-Query Filtering section)
  • Media::render() now returns a Response object instead of accepting one by reference; this affects any filters applied to render()
  • For Request and Response classes, use of the $type property (or meta-property) has been replaced with the type() method

Changes

Adam Royle (7):

  • Fix lithium\action\Controller so it doesn't modify the data array when there is only a single element in the array.
  • Fixing lithium\util\Validator::check() to allow null values when skipEmpty == true.
  • Preserve connections in CollectionTest and call Connections::reset() in ConnectionsTest.
  • Fix to prevent exception when using fully qualified field names in nested conditions.
  • Refactor CookieTest and PhpTest to simplify custom cookie name.
  • Adding CRLF test to Inspector::lines().
  • Fix Unit::_cleanUp() so app/resources/tmp/tests/empty file is not deleted on Windows.

Ajai Khattri (1):

  • Added list showing mapping of $_schema types to MongoDb types.

Ali B (2):

  • Rename variable passed to the clusure to regex.
  • Add test case for Sqlite3's describe.

Ali Farhadi (4):

  • Adding two tests for continuation routing.
  • Adding test for continuation routes with default parameters.
  • Adding test for continuation routes with query string.
  • Return a consistent url using either $_GET['url'] or REQUEST_URI.

Bogdan I. Bursuc (2):

  • Fixes #77 and a few tests that where incorrect regarding this issue.
  • Remove unused instances in some Model functions.

Chris Beswick (4):

  • Replaced net/http/Route::_compilePatterns() with a preg_match_all() in compile().
  • Rewrote net/http/Route::compile() to make better use of preg_match().
  • More changes to net/http/Route and additional test added.
  • Fix failing integration/analysis/LoggerTest by adding format to config array.

Chris Gutierrez (1):

  • Added test cases for iterating through a Result object using a foreach loop. Updated Result class to make them pass.

Christopher Garvis (18):

  • Updated __call() to work more like the other methods.
  • Updated __call() to work even if not called from a model.
  • Removed mock-http-conn connection since it's not being used.
  • Switched hardcoded check of Query to is_object().
  • Fixed stituation where a previous curl request's options get used.
  • Converted setting default options to set by array.
  • Refactored crud functions to use __call().
  • Removed http verb tests and fixed post/put data not being set.
  • Added test case for when a method has not been configured.
  • Added filter to each of the crud methods.
  • Removed path vars from the data.
  • Moved encoding and decoding of the body to the request and response.
  • Fixed some tests.
  • Added comments to new methods.
  • Moved _encode() to Request and _decode() to Response.
  • Moved setting of the content-type header to the request.
  • Changed Media::type() to cast a Content-Type string to array.
  • Cleaned up syntax.

Ciaro Vermeire (3):

  • Fixed some typos in the docblocks of core/Object. Removed the double use of $property in core/Object::_init().
  • Fixed incorrect DocBlock.
  • Making Validator::check filterable.

Dan Fellars (4):

  • Modified curl to support options.
  • Moved statement after check for scheme/host.
  • Fixed spacing.
  • Added support for PUT to add body in Curl with tests.

Davey Shafik (8):

  • Use ext/pdo_mysql instead of ext/mysql.
  • Use PDO*.
  • Wrap line to < 100 chars.
  • Refactor out comments.
  • Fix li3 syntax issues.
  • Allow for namespace prefixes.
  • Allow for invalid "HTTP/1.1 " responses.
  • Add {:bold} style, show all docblock in help, typo.

David Persson (136):

  • Correcting spacing and whitespace.
  • Removing unused but declared dependencies.
  • Removing superfluous last comma in arrays.
  • Re-wrapping long lines.
  • Misc QA.
  • Reodering see and link tags in docblock.
  • Readding newlines, removed in 97c5e7ca2283d711316e.
  • Removing documented return.
  • Readding @return void to non-test classes and methods except the constructor.
  • Removing @return void from destructors.
  • Fixing documented return value; adding description; reorder tag.
  • Reordering deprecated tag.
  • Removing placeholders from skip message.
  • Removing BOM from namespacwe document.
  • Standarizing on example.com for examples and basic assertions.
  • Updating tests to use lithify.me instead of google.com.
  • Formatting output of console test command.
  • Adding skips to session and cookie tests.
  • Removing method tags documenting magic methods from docblock.
  • Bringing German plural form in line with li3_lldr.
  • Adding missing tests for g11n message resources.
  • Adding link to crypt function.
  • Removing unneeded skip.
  • Rewording skip message; adding docblock.
  • Adding documentation and tests for boolean string types.
  • Updating docblock, fixing quotation marks.
  • Standarizing on _backup as property name.
  • Standarizing on _backup as name.
  • Removing return void tags from test docblocks.
  • Fixing adding of new configs in extract command. Closes #65.
  • Fixing spacing in Inspector test.
  • Removing extension from temporary file.
  • Using _cleanUp() instead of unlink().
  • Syncing docblock with implementation in Adaptable.
  • Updating skipIf messages; expanding/updating docblock in test.
  • Expanding docblocks and need of redefining properties.
  • Better isolating Extract command test.
  • Synchronize documented defaults in String::insert().
  • Fixing typo in test path.
  • Standarizing skip message for path.
  • Adding test, proving option parsing with dash works.
  • Documenting console option parsing behavior.
  • Adding missing visibility operator.
  • Fixing EOL and indentation using whitespaces.
  • Fixing indentation issues and tag order.
  • Removing inline comment from test.
  • Adding explanation on 'PLATFORM' variable to action request docblock.
  • Adding tests to show the alpha-numeric validation rule works as expected.
  • Adding 'PLATFORM' environment variable to console request.
  • Updating docblock for Unit::_cleanUp().
  • Fixing too long line.
  • Synchronizing defaults in test Report and Dispatcher.
  • Changing default command header output style.
  • Initial implementation of console test progress.
  • Changing return from _runTestMethod().
  • Formatting test profiler console text output.
  • Correcting indentation level in profiler console output.
  • Removing configuration output of test command.
  • Fixing usage of $this.
  • Making parameter in test runner optional.
  • Refitting test reporter as progress reporter.
  • Removing progress filter option.
  • Explain filters option for help command.
  • Updating test command to use new reporter.
  • Dropping usage of reporter in test controller.
  • Adding exception to the expected types.
  • Updating report unit tests for new reporter.
  • Updating help command test for new test command signature.
  • Skips do not have class or method info.
  • Use verbose mode and profiler filter during CI.
  • Adding line number in verbose test command output.
  • Fixing printf template for possible strings.
  • Use mock in UnitTest do not interfer with normal test reporting.
  • Changing test to use uncomplicated txt format.
  • Removing information about integration testing from Unit docblock.
  • Revert "Changing return from _runTestMethod()."
  • Relaxing expectation on coverage in FilterTest; formatting.
  • Updating docblock formatting
  • Formatting.
  • Removing unused assingment.
  • Use non-alias version of the function for DNS resolution.
  • Close file descriptor after opening.
  • Revert "Use non-alias version of the function for DNS resolution."
  • Change Unit::_hasNetwork() to check for A record.
  • Use non verbose mode for test output on travis.
  • Better isolating integration test.
  • Removing subheadings from test command.
  • Reordering styles in console response.
  • Removing explicit return of null.
  • Normalizing test paths trimming trailing slash.
  • Formatting error messages in test command.
  • Updating path mapping in test command to allow non-test paths.
  • Test command can now find and run test for a given file.
  • Removing functionless nl() call.
  • Adding general OK/FAIL to end of test run.
  • Formatting.
  • Fixing test failing due to latest changes in test command.
  • Differ in exit codes.
  • Introducting plain mode for test command.
  • Better filter files to try to map.
  • Updating help command test for changed signature.
  • Updating report test for moved template.
  • Force newline on assert message.
  • Typo.
  • Adding mistakenly removed newline back.
  • Disabling memcache extension installation on CI.
  • Adding Multibyte class for working with UTF-8 encoded strings.
  • Adding note about UTF-8 encoded strings to Validator.
  • Enabling multibyte support on lengthBetween validation rule.
  • Revert "Enabling multibyte support on lengthBetween validation rule."
  • Fixing typos and reflowing text.
  • Fixing header typo. What happened here, dear vim?
  • Rewording Multibyte class docblock.
  • Rewording Multibyte class docblock.
  • Adding multibyte support for strpos(), strrpos() and substr().
  • Add new multibyte files to expectation.
  • Applying basic coding standards conventions to CI script.
  • Restructuring CI depends script, adding docblocks.
  • Removing removal of executation time limit in CI depends script.
  • Use PHP_VERSION instead of phpversion() in CI depends script.
  • Refactoring retrieval of ini path in CI depends script; adding docblock.
  • Adding new line above first inner class dockblock.
  • Making CI depends script class static.
  • Adding docblock in CI depends script.
  • Refactoring CI depends script.
  • Fixing spacing after foreach.
  • Fixing formatting in docblocks.
  • Cleaning up and reformatting .gitignore.
  • Fixing parsing of content types with version number.
  • Adding blank line after method definition.
  • Removing assertion on test precondition.
  • Refactoring key/value header assignment.
  • Removing mistakenly added blank line.
  • Removing unneeded preg flag.
  • Fixing parsing of content types with version number.
  • Two QA fixes in test class and auth adapter.

Developer (1):

  • Allowing the pointer or resource to be returned so that queries can be worked with from filters and such. Very important for MongoDB because this is MongoCursor class which allows for explain() and more.

Edmunds Kalniņš (2):

  • Test that subobjects are properly casted on createing a new Document.
  • Test that subobjects are properly casted on createing a new Document.

Eric Cholis (4):

  • Updated Request::env() to account for servers that do not set the SERVER_ADDR environment variable. If SERVER_ADDR isn't present, Request::env() returns LOCAL_ADDR. Provoked specifically by IIS 7.
  • Updated to check if LOCAL_ADDR is set in the case that SERVER_ADDR isn't available. Present in IIS 7.5
  • Fixed syntax error in documentation, missing closing '.
  • Extend Request.php to include Http Proxy support.

Hans Donner (11):

  • Fix unlinking readonly files throwing an Permission denied exception on Windows.
  • Simplify if else and use $item->isWritable().
  • SuppressEolIssues.
  • Simplify test for strings on _suppressEolIssues.
  • _suppressEolIssues becomes _normalizeLineEndings and returns array.
  • fix EOL in g11n CodeTest.
  • fix EOL in g11n CodeTest the correct way.
  • exceptions thrown in setUp and tearDown cause silent end of testcases being run.
  • fix SetupThrowsExceptions. This test passes already.
  • Small doc/whitespace adjustments.
  • Test for REQUEST_URI pages/test_app_test:

Howard Lince III (18):

  • Fixing a case where running lithium console on windows from another directory caused custom console commands to not work.
  • Fixing an issue with the auth form adapter where field mapping wouldn't carry over properly to validators.
  • Adding in a fix that was somehow removed. This also fixes a previously failing test.
  • Adding tests for an issue regarding schema's defined as an array. The issue is that if a parents name is reused as a child, it's also defined as an array type.
  • Fixing a condition where the exporter may not have always properly set the path key when casting.
  • Query: Removed the hasMany & limit check that is only applicable to relational databases from the _associate() method and did a general QA cleanup. Database: Added the hasMany & limit check from query into the read method. Did a general QA cleanup.
  • Database: phpdoc cleanup and simplifying the condition for checking hasmany & limit queries.
  • Fixing a minor condition when receiving an empty key, Exporter::cast would add it to the pathkey, this behavior is improper and would be technically unfetchable via object return.
  • Doing a general QA and Docblock.
  • Validator: Fixed a condition where 'format' wasn't being properly applied to validators with multiple format options. It was effectively always 'any' regardless of what it was set to. 1: Fixing a condition where a null format passed to __callStatic would not be overridden with 'any' 2: Removed the extract statement for readability. 3: Fixed $options['all'] being dependent on $format being 'all' as opposed to it's actual value of 'any' 4: Removed superfluous key extraction then rematching for the loop - foreach now just iterates over $rules instead of extracting the keys then piecing it back together. 5: Added a continue statement for elements not in the formats array when $options['all'] is false. 6: Removed format assignment, not necessary.
  • Adding a test case for when hasMany with limit is run and no results are found. This generates erroneous sql code. Fix being pulled in thanks to joebeeson.
  • Related to #155 - simplifying Entity->modified with more up-to-date syntax and adding tests for Entity::modified().
  • Adding a fix to retain fidelity on exporting document data as an array.
  • Updating entity to concat arrays instead of merging, this makes it more efficient.
  • Adding pluralRule to the getText adapter so that Message::_translated() can process plural words.
  • Updating gettext implementation of pluralRule.
  • Fixing implementation of Media::encode(). Default handler values for 'encode' is false, isset returns true on this causing encode to attempt to run against it. Updating !isset to empty to properly trigger for this scenario.

Jens Radtke (2):

  • Patched Entity::modified() to detect changed and unchanged fields.
  • Patched Entity::modified() for null values.

Jeremy Huntwork (2):

  • Fix some typos and adjust some grammar in console/readme.wiki.
  • Don't call Mongo::close().

Joe Beeson (6):

  • Fix for querying with relationship.
  • Adding a test to confirm functionality for scheme agnostic addresses for JS scripts.
  • Escaping the database name for databases with periods.
  • Modifying the PHP session adapter to automatically create acceptable session names. Modifying the test to ensure this functionality.
  • Adding empty() check in boolean validator to allow empty values. Updating test to reflect.
  • Modifying the Environment test to account for changes and increase code coverage.

Joel Perras (1):

  • Fixed typo in lithium\security\Password doc block.

Johan Sonesson (8):

  • Added template functions from Controller generator with slightly rewritten comments.
  • Fixed faulty indentation in commit, but also in Controller.php.
  • Removed php start and end tags from view file output.
  • Fixed bad method of error-checking file_put_contents().
  • Final fix of indentations, this time of all files in this dir.
  • Modified testIndexView to include testing for var substitution, and also renamed the test to conform with Controller.php.
  • Some code quality adjustments.
  • Renaming var as suggested by gwoo.

Jonathan McCaffrey (6):

  • Added sort methods to util\Collection and data\Collection.
  • Fixed a bug where values in IN clauses were not escaped properly in the Database DS.
  • Removed inline comments.
  • Removed inline comments.
  • Fixed tests, there was a problem where the tests were not properly using the schema, so enforcing the schema broke them. This is not a real world scenario.
  • Removed some whitespace per lithium_qa.

Jurgens du Toit (1):

  • Handle timestamp values correctly #28.

Léo Peltier (3):

  • Typo in comments.
  • Disable Compiler fallback by default.
  • Fix EOLs.

Maggion Emmanuel (1):

  • Fixed typo.

Marc Ghorayeb (12):

  • Media::decode() fix for types with a 'decode' set to false. Fixes #150.
  • Media::decode() - fixed line length.
  • Test cases for unsetting a DocumentArray and Collection item while inside a foreach loop.
  • Removed an echo line.
  • Fixed by decrementing the iterator index when unset is called inside DocumentArray and Collection.
  • Use the GridFS remove function for models that use the fs.files source. This fixes a bug where file records that are deleted don't see their binary data (fs.chunks) being deleted too.
  • Fixed the MySQL port being always overwritten to 3306.
  • Fix for #339, MySQL ORDER BY bug with related models.
  • Fix for #384. Check relationships in Entity::_isset().
  • Test case for #384.
  • Test case for #392. URL parsing fails with unicode characters.
  • Fixed tertiary expression for response header codes.

Marc Schwering (1):

  • Fixing redirection inside the li3 create controller template.

Mariano Iglesias (8):

  • Fixing issue where Encrypt session strategy would keep plain values. Fixes #255.
  • Adding missing MockEncrypt class.
  • Fixing issues in SessionTest. Fixes #288.
  • Improving Locale::lookup() so it better detects alternative locales.
  • Updating link to li3_doctrine2.
  • Adding support for multiple bindings to FormHelper. Thanks @nateabele for the awesome improvements.
  • Adding missing mock for #455.
  • Accounting for HTTP_X_FORWARDED_FOR when getting REMOTE_ADDR.

Martin Samson (4):

  • Fixes #208. Adds a prompt when files already exists.
  • Was passing wrong options.
  • Properly handles bad input by skipping instead of overwritting.
  • Fixes #203 by removing a call to Inflector.

Mehdi Lahmam B (41):

  • Remove duplicated tests.
  • Add tests for parsing Response Content-Type without encoding.
  • Fix Content-Type parsing regex and matching.
  • Refactor Content-Type parsing existing tests and minor cleaning.
  • Fix setting Request CONTENT_TYPE from the environment settings.
  • Add a test case for getting Request CONTENT_TYPE for Nginx environment settings.
  • Fix regression in Response::type() introduced in f2a44de15a3fe8a5bf8a.
  • Skip profiling tests if Xdebug is not loaded.
  • Update to make use of defined BF and XDES iterations numbers constants.
  • Minor update to be explicit about default value of a variable.
  • Minor Typos fix.
  • Fix a regression on Validator::check() and skipEmpty option.
  • Fix failing GroupTest test.
  • Add failing tests for Inspector::executable() and wrong comments parsing.
  • Reset MockDispatcher rules to avoid conflicts with potential existing ones.
  • Minor Docblock update.
  • Update Inspector::executable() to take into account multilines comments.
  • Minor formatting.
  • Make use of Inspector::lines() instead of file_get_contents().
  • Minor fixes.
  • Update tests that relied on lithify.me to google.com.
  • Form helper is now aware of radio inputs.
  • Minor fix for a failing Request test when ran from cli.
  • Install php extensions necessary for Travis build.
  • Add a Build Status image to README.
  • Remove memcache from needed extensions + minor fixes.
  • Remove shell script for installing php extensions before a build.
  • Minor fix.
  • Refactor for a cleaner code.
  • Less skipped tests for PHP5.4 with Travis.
  • Revamp Html helper API docs.
  • Minor API docs updates.
  • Minor QA fixes.
  • Minor fixes.
  • Minor typo fixes.
  • Update app.phar.gz template.
  • Fix the packaged app template.
  • Fix wrong embedded code for Media docs examples.
  • Update composer.json with the correct package type for Lithium libraries.
  • Composer Installers aren't yet flagged as Stable.
  • Update phar-packaged app layout.

Michael Nitschinger (64):

  • Adding tests for the complexity test filter.
  • Skip the curl part of the socket integration test if the system was not built with curl support.
  • Adding memory session adapter test.
  • Adding serializer test cases and modifing the memory test slightly to user uppercase class name.
  • Replacing call_user_func_array() with forward_static_call() array so that late static binding can be used. WARNING: this may break static method calls to ::invokeMethod() with more than five params and which are not using late static binding accordingly.
  • Increasing php test coverage, small group test formatting fix and adding a match regex in the inspector so that multi-line arrays do not count as executable
  • Increasing test coverage of the console test command.
  • Adding ANY to dns record check which prevents false-negative cases.
  • Console: Adding possiblity to colorize columns output. WARNING: while only the route console command depends on the columns() method, external commands have to change the optional second argument from string to array (if they've specified a different separator). Also adding some documentation and examples.
  • Adding initial implementation of recursive select values with test cases.
  • Fixing typo in Unit class.
  • Refactoring internet connection check into \test\Unit. It is now possible to check for a successful internet uplink in a central place. Also modifying the integration SocketTest to use the new method.
  • Modifying all tests that've used the dns check on their own to use the new _hasNetwork helper method.
  • Integration tests should inherit from \lithium\test\Integration, not \lithium\test\Unit directly.
  • Returning the correct value in the memory session adapter, merging cookie integration test and session integration tests. they all should pass now correctly.
  • QA: Misc. fixes.
  • Testing: clearing session integration tests on tearDown().
  • Sesssion: Fixing HMAC key bug #20. Added test cases.
  • Collections: Lazy-Loading data with $this->offsetGet() on find(). Fixes #62.
  • Controller: removing unused variables in the filter.
  • Form: correcting input field config handling. Fixes #93.
  • Initial version of the cookie encryption strategy.
  • Session Encryption: Adding integration tests and fixing a few bugs.
  • Cookie Encryption: QA cleanup.
  • Cookie Encryption: adding documentation.
  • Session Encryption: removing extract calls altogether, based on the recommendation of jperras.
  • Dispatcher: Adding test case to prove that POST requests to / (root) work as expected.
  • QA: Miscc QA fixes, including trailing commas, param documentation and line length fixes.
  • Security: Refactoring the PasswordTest class for better readability, faster test case execution and suhosin patch compatibility.
  • QA: formatting and docblock changes.
  • Security: Refactoring timing attack prevention into String class and implementing protection for the HMAC Session strategy.
  • Security: Renaming compareConstant to compare
  • Storage: passes data on write to the key() method, so that a closure can make use of it.
  • Data: Refactoring Mysql Result class and adding test cases.
  • Data: correcting the semantics of rewind() and adding more documentation.
  • Data: more MySQL Result test coverage and aligning prev() with next().
  • Session: hash weak secrets to make them more secure.
  • Data: remove leading slashes from use statements.
  • Data: Removing call by reference to prevent segfaults.
  • Session: enhancing the Encrypt strategy to use AES and adapt to various ciphers automatically.
  • Analysis: adapting inspector to be more general on file-endings (and working on windows).
  • Analysis: more Inspector::lines tests and QA.
  • Core: adding missing 'use' statement to the Libraries class.
  • Console: QA fixes and documentation for the console dispatcher and command classes.
  • QA Session: removing unused variables and correcting a typo.
  • QA: typo fixes.
  • Fixing bug so that the base has the needed prefix / added.
  • Fixing realpath issues in various tests for windows compliance.
  • Fixing one failing libraries test.
  • Console: making several paths and extract code snippets windows-compliant. fixing tests along the way.
  • Console: skipping Test command checks on windows for now, because they need to be refactored to work on windows properly.
  • QA: Misc fixes
  • QA: replacing spaces with tabs where appropriate.
  • QA: enforcing camelBack syntax on variables.
  • QA: enforcing camelBack on functions.
  • WARNING: BC Break: Auth: adding 'persist' option to scope database fields. This breaks BC if you previously stored a field with the name 'password' in the session. Implements #458
  • Auth: Refactoring auth persist functionality and minor qa fixes.
  • QA: fixing variable names, line endings and comments. Also changing private methods to protected ones.
  • Test: make collectLines method public in alignment to similar methods in this namespace. Was intended to be public since it was lacking the _ prefix.
  • Fleshing out composer.json with info about the project and its contributors.
  • Making the license-clause more specific in composer.json
  • Error Handler: removing old definitions and refactoring tests to reflect the change.
  • Error Handler: adding better testing and assertions for error trapping
  • QA: various max line length fixes.

Mike Greiling (2):

  • Fixing a few typos and grammatical errors.
  • Fix for unset _request property when calling _render().

Mike Smullin (2):

  • Correcting error in li3 created controllers: Fatal error: Class 'app\controllers\DispatchException' not found had forgotten to use absolute namespace.
  • Rather than using fully-qualified namespaces, we always import them via qualified use statements before the class definition, as per Lithium coding standards.

Nate Abele (130):

  • Omitting 'host' key from \data\Connections::add() so that adapters can specify their own default.
  • Fixing path in console docs.
  • Implementing \action\Request::locale() accessor/mutator methods to handle setting and retrieving the locale for the current request.
  • Correcting typo in Router documentation.
  • Re-packaging plugin Phar archive with minor updates.
  • Fixing formatting in \console\Response.
  • Implementing authentication validators in Form adapter, and adding documentation. Moving string casting to Form::_filters(), and modifying so only non-scalars are auto-cast to strings. WARNING: The default password hashing configuration has changed from a pre-query hash to a post-query crypto check. Update your configs accordingly (see documentation).
  • Cleaning up Form auth adapter tests, tightening up validators, and improving code coverage.
  • Updating 'button' template in Form helper. Fixes issue #33.
  • Removing completed @todos, and reformatting paths to strip redundant app prefix; corrected out-dated path conventions.
  • Adding tests for compiled routes with subpatterns containing multiple repetition expressions.
  • Adding 'autofocus' to list of minimized HTML attributes.
  • Fixing detection issues between applications and plugins in lithium.php console bootstrap file.
  • Fixing an issue in \util\String::insert() where empty values (i.e. 0) would always be replaced with empty strings.
  • Refactoring Form helper string templates to use wrapping instead of start/end elements. Fixing type-checking in \util\String::insert(). Adding sanity checking in \template\Helper::_attributes().
  • Fixing skip check in APC test.
  • Whitespace and formatting fixes.
  • Code formatting cleanup and refactoring.
  • Implementing filtering in \template\helper\Form::error().
  • Fixing issue in Help command to filter out protected methods.
  • Rewriting console bootstrap file to do a slightly better job detecting when a library can self-bootstrap.
  • Removing un-needed constant definitions from \core\Libraries.
  • Fixing bad Query test.
  • Renaming Entity::update() to Entity::sync() to better reflect functionality, and reduce API ambiguity.
  • Refactoring MongoDB changeset calculation for update operations, to improve efficiency. Renaming keys config field in \data\model\Relationship to key, to better reflect default use case.
  • Changing up diffing model for DocumentArray.
  • Fixing issue where complex constraints were not rendered (#68).
  • Cleaning up MongoDb and Exporter tests.
  • Revert "adding test and fix for infinit loop in data\source\mongo_db\Exporter"
  • Adding docs to the $_fields property of the auth Form adapter.
  • Rolling back extra nginx support that breaks subdirectory installs under non-nginx servers in \action\Request.
  • Fixing issues in MySql and Sqlite adapters where table names where not properly quoted in DESCRBIE queries.
  • Fixing issue where disabling the password validator in the Form auth adapter would omit the password from the authentication query.
  • Cleaning up condition in Form auth adapter.
  • Fixing documentation in Form auth adapter.
  • Fixing issue with Form helper where a template string could not be modified.
  • Fixing issue where Form::label() would point the for attribute to field names instead of DOM IDs.
  • Implementing route continuations.
  • Implementing reverse continuation routing.
  • Fixing conflicts between continuation routes and normal routes which include passed arguments.
  • Fixing issues with continuation routes with parameters.
  • Fixing issue with continuation routing where querystrings would be appended multiple times. Adding extra test coverage to continuation routing.
  • Adding route regex fixes and tests for #162 and #154.
  • Adding missing class import to Cookie storage adapter.
  • Updating documentation of \util\Set::check() to clarify key format.
  • Fixing issue with using suffixes in route continuations.
  • Fixing overly greedy continuation route match.
  • More greedy route fixes.
  • Mitigating segfault bug in APC + PHP 5.4.
  • Relationships not implemented in non-relational databases.
  • Cleanup from previous refactor.
  • Eliminating leading backslashes and inline namespace references.
  • Ensuring directories created in tests are always created recursively with full read/write permissions.
  • Use system temp directory as default application resources directory when bootstrapping the framework solo.
  • Skipping template location test when no default template present.
  • Uncaught expected exceptions now result in failed assertions. Fixes #280.
  • Updating Libraries test to match new default resources directory.
  • Logger test now generates its own temp directories instead of skipping.
  • Route command test now always uses mocked routes file.
  • Suppress git console output for non-error conditions in Library command.
  • Updating assertion in \console\command\g11n\Extract test to comply with variable resources directory.
  • Skipping tests in Media if no webroot directory present in default library.
  • Adjusting Form helper regex tests to run on the console.
  • Removing unneeded exception expectation from Form helper test.
  • Refactoring directory checking in Cache tests and preventing skipped tests.
  • When restoring directories in test runs, only touch empty files if the parent directory exists and is writeable.
  • Preventing Context test from hitting localhost.
  • Preventing Context test from hitting localhost.
  • Fixing Php session adapter mock to implement the correct method.
  • Removing exception assertion for an exception that is no longer thrown.
  • Rewriting tests for methods that no longer throw exceptions. Using mock objects in Connections test.
  • Replacing references to default app with generated mock app in Media test.
  • Code formatting.
  • Overriding values in mock class in Locale test to ensure consistency across platforms.
  • Only increment internal RecordSet array pointer if number of records is greater than one.
  • Fixing issue where multi-value headers would be improperly cast to strings.
  • Removing deprecated method \action\Response::disableCache().
  • Fixing scalar value check in Form auth adapter.
  • Testing new build script.
  • Build script, round 2.
  • Build script, round 3.
  • Build script, round 4.
  • Build script, round 5.
  • Build script, round 6.
  • Retrying the build script thang with some Perl.
  • Updating readme to show build status of master.
  • Upon careful review, code containing non-UoR copyrights is deemed to have diverged to the point of no reconciliation. As such, no-longer-relevant copyright blocks will be removed.
  • Rolling back pull request #354, as it breaks the build.
  • Fixing directory check in Media test.
  • Rewriting Media tests for better coverage.
  • Cleaning up MediaTest and fixing assertions to point at test library.
  • Controller::render() returns a value now.
  • Media::render() now returns a Response object instead of accepting one by reference. WARNING: this will break BC if you have filters intercepting Media::render().
  • Fixing issue with read-through cache writes not returning a value. Implementing alternate read-through syntax.
  • Fixing something the compiler decided it didn't like in Inspector.
  • Implementing formatters for route parameters.
  • Refactoring route formatter handling, moving route Unicode test to correct test class, and adding configurable Unicode support to route regexes.
  • Proof-of-concept to eliminate modification of arbitrary controller formatting. Standardizes controller representations to be CamelCased internally.
  • Updating test for route console command to reflect CamelCased controller names.
  • Cleaning up class references.
  • Refactoring \template\View to allow subclasses to switch out adapter path.
  • Improving API documentation for View class.
  • Fixing array to string conversion error on PHP 5.4.
  • Fixing broken newline assert in Code adapter test.
  • Testing MongoDB race condition on PHP 5.4.
  • Testing MongoDB race condition on PHP 5.4.
  • Making docblock for Form::field() less ambiguous.
  • Revert "Handle timestamp values correctly #28"
  • Adding composer.json.
  • Fixing composer.json syntax.
  • Making dependency checks more test-friendly in Html helper.
  • Adding test for Media::asset() with empty strings.
  • Fixing g11n\Multibyte to prevent configuration from leaking globally.
  • Cleaning up coding standards issues.
  • Fixing issue in #562 where URLs with colons in paths would prevent parsing.
  • Throwing exception with message in Coverage test filter if Xdebug is not installed. Fixes #509.
  • Formatting fixes.
  • Fixing issue with variable number of exceptions in database connection testing.
  • Fixing docblock conflicts.
  • Fixing cases where matching routes with default values returns an empty string.
  • Implementing host mapping in \core\Environment::is().
  • Ensuring full docblocks are presented in console Help command for both classes and methods. Misc. code cleanup.
  • Adding accessor patterns to Libraries::get().
  • Fixing up proxy support implementation for \net\http\Request, and adding test cases.
  • Supporting additional HTTP response codes, and correctly distinguishing between 406 and 415, Media::handlers() is public now.
  • Allowing Environment::set() to assign to multiple environments.
  • First pass at disambiguating request/response content type. WARNING: BC break - going forward, usage of the $type instance property should be replaced with the type() method.
  • Ensuring proper casing for Location header in \action\Response::_init().
  • Ensuring request method is not improperly overwritten in \action\Request.
  • Refactoring asset handling in Media, implementing support for adding asset hosts through Libraries.

Omer Yariv (2):

  • Moved type check before body check.
  • Updated testJsonPost to test 56a5ef4.

Paul Huff (1):

  • Add quotes so that directories with spaces will still work when using li3 on the command line.

Paul Webster (1):

  • Fix inflection of leaves & leaf.

Pedro Padron (5):

  • Making sure the default namespace used in Library::extract() is valid by underscoring the directory name.
  • Implementing return handlers in net\http\Service and adding support for $path and $data to HEAD requests. Closes #640.
  • Data for PATCH requests in net\http\Service should be encoded in the request body. Fixes #647.
  • Adding net\http\Service::patch() method.
  • Setting correct Content-Type for PATCH requests in net\http\Request.

Pete Holiday (6):

  • Allowing zero-valued options and the empty param to play nice with each other in the select form helper.
  • When checking for 'selected' always cast to a string, because there's no other datatype that can be represented uniqely in an html attribute.
  • Adding tests for select helper int/string agnosticism.
  • Refactoring tests to remove inline comments.
  • Fixing a similar/related issue with checkboxes and dot-notation.
  • Fixing indentation; spaces => tabs.

Phil (2):

  • Add failing test that should not fail.
  • Adding fix to greediness of regex so test no longer fails.

Raymond Julin (2):

  • Reversed direction of result / expected in test case
  • Implements Collection::reduce

Richard McIntyre (18):

  • Added a default detector for routes beginning with /test.
  • Detector for tests path changed to $request->url to be consistant with router. Have also added tests.
  • Added local condition to environment detector for test path.
  • Tests now passing for local test directory.
  • Removed duplication and line length offensive code.
  • Added environment recognition for the console.
  • Changed exporter to handle removal of properties.
  • Added failing Exporter test.
  • Exporter update values fix and tests.
  • Added missing Socket test.
  • Added missing g11n memory adapter test.
  • Test and patch for issue #204.
  • Test and fix for issue #66.
  • Test and fix that deals with issue #278.
  • Fix and test for issue #214.
  • Fix for issue #198.
  • Spelling fix in LibraryTest.
  • Syntax fixes.

Richard Vanbergen (6):

  • Coverage for Form auth adapter is now at 91.23%.
  • Ensuring password validator is always set unless specified otherwise.
  • $key did not exist in _validate, was causing "undefined variable" error.
  • Allowing the Form adapter to pass an array of options to the query. Can now force data to be set for testing in the mock FormTest::first() method.
  • Removed new line at EOF. Coverage is now at 100%. Made the first() method fake the model find('first') a little better by retuning null if no data is available.
  • QA: Removing EOL at EOF. Removing commas on last items of array. Removing newline between last method definition brace and end of class brace.

Rob Marscher (13):

  • Fixing controller rendering of requests with a type set other than the default 'html'.
  • Fixing inconsistency between Media::type() option defaults and the paths in default Media::_handlers. Added an integration test to make sure Media and View handle the paths set via Media::type() properly.
  • Adding support for schemeless external urls which have become very popular for providing an easy way to support automatically using the same scheme as the initial html page when accessed over http and https.
  • Updates to the 'li3 library extract' command.
  • Making it slightly more obvious that Controller::_init is looking for a param named 'type' in the request object and not a mistyped instance var or method.
  • Adding test for empty encode values in Media handlers.
  • Fixes form auth field mappings for fields used in validators.
  • Handling of nested modified data in documents when calling Document::modified().
  • Enabling a callback to be used in addition to String::insert()-style strings for Dispatcher rules. A callback can be used to define the rules as well.
  • Fix for issue #448. li3 help now converts commands to CamelCase.
  • Fixed an issue with the form helper where the value zero would not display (and a few small edits to pass lithium_qa)
  • Fixing an issue where strategies were applied to incorrect session configurations

Rui Pedro Lima (2):

  • Fixed the Command::nl() docblock. Method doesn't print to the output, it builds a string and returns it.
  • Fixed typo: Set::insert() to String::insert() in String::clean() docblock.

Simon Jaillet (7):

  • Adding a strategy to replace any library's file.
  • Adding a way to replace any library's file (formatting issues).
  • Unused variable.
  • Fix Inspector::executable() on empty class.
  • Infinite loop on test\Unit::_compare() solved.
  • Fix typo.
  • Minor Security fix for Form::button().

Sloan D. Mergler (1):

  • Added a new form test.

Tigran Gabrielyan (1):

  • Fixed issue with windows console: removed unnecessary cd which caused to use the wrong path.

Tobias Sandelius (3):

  • Added ability to add instance method in models via e.g plugins.
  • Added test for model instance methods.
  • Refactored Entity::__call() and some code cleanup.

Tom Maiaroto (1):

  • Remove nbproject from the ignore.

Tommi Enenkel (1):

  • Add sanity check in Media::asset().

Veselin Todorov (22):

  • Growl register now returns booleantrue for consistency reasons.
  • Added missing comment.
  • Improved the documentation for lithium\util\Set::isNumeric().
  • Added assertation for the case where an empty array is passed as param.
  • Fixed a wrong link in the readme file.
  • Adding support for "last" rule in Validator::check method.
  • Fixing the case when last is used on empty value with required option.
  • Adding test for "last" param in Validator::check method.
  • Fixing duplicated array element.
  • Adding CollectionTest docs.
  • Adding tests for Collection::close() and Collection::closed().
  • Adding Collection::$_parent getter.
  • Adding test for Collection::assignTo().
  • Removing @return void in CollectionTest.
  • Replacing PagesController with HtmlHelper in testLocateWithDotSyntax.
  • Adding skip if the app folder is missing. Fixing an issue when running in standalone mode.
  • Adding class property hasApp which indicates if the app folder is available.
  • Replacing app with lithium in testFindingClassesAndNamespaces.
  • Updating testFindingClassesWithExclude in order to test that non-class files are picked up.
  • Fixing a thrown exception in testPathFiltering, because the missing app folder.
  • The result of Libraries::get() should contain app only if the app folder exists.
  • Updating expectetions in testLibraryConfigAccess, when there is no app folder.

Yoan Blanc (11):

  • Fixing French plural form.
  • Fixing CrudTest (using lithium_couch_test connection).
  • Fixing DatabaseTest (using lithium_mysql_test connection).
  • Database Test better setUp/cleanUp (with drop tables).
  • Fix DocumentTest (using lithium_couch_test connection).
  • SourceTest uses lithium_couch_test connection.
  • Fix FieldsTests (using lithium_mysql_test connection).
  • Showing the bug about Cache::read() with write (#383).
  • Test cases for malformed headers and expected behavior (#383).
  • Fix for the test cases added on Locale::preferred.
  • Remove the inline comments (#386).

clexmond (4):

  • Breaking test for issue #280.
  • Addition of assertException unit test and updated test cases for issue #280.
  • Added a fail method and unit tests, issue #280.
  • Flattened if/else blocks per gwoo comments on pull request.

d1rk (2):

  • Allow auth adapters to return a single value instead of arrays.
  • Allow dispatching of unknown methods to redis connection object.

dgAlien (8):

  • MockPostForValidates: adding two additional validation rules for testing cutom events.
  • ModelTest: adding validation tests for new custom event rules.
  • ModelTest: added tests with model bound validation rules and triggered custom events => is failing due #212.
  • Data/Model: fix #212 , Model::save() adding events in default values and passing them to the validator.
  • Fixing qa issues.
  • #212, #235 related Docblock improvements: Model->save() events options.
  • Fixed whitespace issues, docblock errors and line length errors.
  • Refactored Document. Thanks @mehlah.

dwalton (1):

  • Adding implementation and test for 'form' type Media decoding. Necessary for http PUT request payloads being translated into the Request instances data.

gwoo (51):

  • Removing unused code from \console\command\CreateTest.
  • Updating app template.
  • Fixing test that broke in Merge pull request #15 from mikesmullin/27263f2bc3.
  • Fixing issue #19 on github where passing an empty array for a value to String::insert() throws error.
  • BREAK: Fixes #387 on dev.lithify.me. Changes net\http\Request::$params to query. See change in test cases.
  • Cleaning up the net\socket tests.
  • \net\Message should not trim the body.
  • fixes #46 on github. Update couchdb handling of items.
  • Making CouchDbTest more accurate with a better MockSocket.
  • Triming the body of the \http\Response.
  • Updating \http\Request::queryString() to use http_build_query in default cases. Also fixing how array values are handled.
  • Fixes #75 and fixes #76. Errors introduced by new Collection::sort() method.
  • Adding test case to show Route parsing handles url encoded params.
  • Fixing some bad tests in \session. Adding a message to PasswordTest assert that is in a loop.
  • Adding test and fix for infinit loop in data\source\mongo_db\Exporter
  • Fixing issue where content type and request method were not set.
  • Adding test cases for setting url with REQUEST_URI when $_GET['url'] is not set.
  • Fixes #111 test cases/suggested fix submitted by @jamalso. Thanks! Now '\action\Requestwill properly determine url fromREQUEST_URIif$_GET['url']` is not set.
  • Adding realm to \auth\adapter\HttpTest so tests pass when app directory is renamed.
  • Adding ignore_errors and follow_location options to \net\http\Request::to('context')
  • BREAK: Refactoring Socket and Service classes so connections are more configurable. Removed Service::connection() method. Added Service::_init() for initializng the Socket connection. Added magic method to handle any HTTP method.
  • Only print console environment reminder if --env is not set.
  • Removing bad test from TestTest.
  • Fixes #38 Adding classes to the config passed in \http\Service::_init() Making \net\Socket::open() return false bringing \data\source\http\adapter\MockSocket in line with recent changes.
  • Changing environment check for CLI.
  • Removing run method from console\Command to make subclassing more flexible. Now a subclass run method can accept params. Also moved the environment message to Help.
  • Adding test case to show that environments are set properly. Anyway, moved the Environemnt set inside of the Dispatcher::run(). closes #188.
  • Adding more tests around document updating. fixed bug in exporter related to updateing array keys.
  • Fixing some classes that caused tests to fail.
  • Adding http digest authentication to Service.
  • Fixing template override. closes #207. Thanks @janseling.
  • Happy 2012!
  • Updating Php and Cookie Session adapters to use the basename of the LITHIUM_APP_PATH by defalt. In the future, this default may be removed so we can also completely remove the LITHIUM_APP_PATH constant. Please refer to commit to https://github.com/UnionOfRAD/framework/commit/72d66738b66f2dc2291250ac38d6af97fb3b7ba0 for proper usage. refs #225 and #218.
  • Adding a new app.phar.gz template to use with li3 library extract
  • Fixing inconsistency in mapping parse_url() to Request::to('url')
  • Adding more tests around queryString. refactoring to support strings or arrays. fixing inconsistency between \action\Request and \http\Request
  • Refactoring the test shell to handle more use cases.
  • Revert "Merge pull request #282 from rmarscher/controller-request-type"
  • Adding initial travis.yml
  • Adding irc notification to travis
  • Added the net\http\Auth class and refactored net\http\Request and security\auth\adapter\Http to use it.
  • Do not call ini_set if session is active in Php adapter.
  • Fixing the paths for create.
  • Going green after #536 where test cases were added to test exception handling in test cases.
  • Couple more changes to reflect the new tests added in #536.
  • Adds a plain and silent option to Command. If --plain, then no styles are displayed. If --silent, then only error is output.
  • fix Curl tests for options setting.
  • WARNING: BC break. Use type method. to properly set Content-Type on all Request/Responses. Message bodies automatically encoded/decoded for convenience.
  • Fixing up some more failing tests related to type() changes.
  • Making Service delete return the empty body again.
  • Adding test for encoded messages in \action\Response. Reorganizing some tests to make it clearer what is tested.

joedevon (1):

  • Fixed typo.

litek (1):

  • Edited tests/cases/action/RequestTest.php via GitHub.

max (1):

  • BUGFIX: unable set customized template when strings field-* exists.

v.v.vishnevskiy (2):

  • In Set::append() replaced "isset" by "array_key_exists" and add support for variable-length argument lists.
  • Fix code rules.

yitznewton (1):

  • From Controller, look for view in own library.