cakephp-shim

CakePHP plugin to "shim" functionality up and down for major versions of the framework.

MIT License

Downloads
760.3K
Stars
37
Committers
6
cakephp-shim - 1.10.2

Published by dereuromark over 4 years ago

Improvements

Shim.Nullable behavior can now also run on beforeSave() callback instead of beforeMarshal().
This helps with validation that needs to have the empty string posted still available for isset() checks and alike.
Also, that callback can be used specifically on "dirty" fields.

You can also refactor those to array_key_exists(), if you want to keep the default event and expect nullish input.

cakephp-shim - 2.0.0

Published by dereuromark almost 5 years ago

CakePHP 4 release

The tool to help ease migration coming from CakePHP 3.x apps.

  • Shim Up: With CakePHP 3.x core and some of the shims, you can prepare your app already for 4.x.
  • Shim Down: Then, once upgraded, with 4.x core and some more shims you can further minimize required changes until the app works again.

Then you can slowly start refactoring again further while the app is already running again.

Contribute

Feel free to contribute more shims to either CakePHP 3.x or 4.x version branch.

cakephp-shim - 2.0.0-beta

Published by dereuromark almost 5 years ago

CakePHP 4 compatible pre-release.

Please help to finalize for stable release.

cakephp-shim - 0.7.2

Published by dereuromark almost 5 years ago

Improvements

CakePHP 2.x maintenance release.

  • backward compatibility access to the request object properties
  • FormHelper::input() and FormHelper::inputs() FC shims
  • TranslateShimBehavior
  • TreeShimBehavior updates
cakephp-shim - 1.10.1

Published by dereuromark almost 5 years ago

Improvements

FC Inflector shim

An Inflector backport has been added as an opt-in replacement for the core one.
Its Inflector::pluralize() already uses new 4.x behavior:

  • pluralize(): index => indexes (instead of indices)

You can also configure the core one with custom inflections from your bootstrap, though.

cakephp-shim - 1.10.0

Published by dereuromark about 5 years ago

Improvements

  • Customizable deprecation output (use your own E_USER_* type if needed).
  • Enabling deprecations is now easier by Configure key Shim.deprecations set to true. You can also silence specific deprecations.
  • Added 4.x FC shim + deprecation for newEntity() vs newEmptyEntity().
  • Added 4.x FC shims for BoolType, DecimalType, StringType ORM type handling classes.
  • Removed deprecations for 3.7+.
cakephp-shim - 1.9.0

Published by dereuromark about 5 years ago

Improvements

Add more 4.x shims:

  • Controller::referer() now defaults to true for internal referer only (as per 4.x default).
cakephp-shim - 1.8.3

Published by dereuromark over 5 years ago

Improvements

Allow CastTrait to handle empty strings.
This is mainly important when handling request data in controller, as they can be empty strings coming from either data or query.

cakephp-shim - 1.8.2

Published by dereuromark over 5 years ago

Improvements

Add CastTrait

This is useful if you want to get your CakePHP 3 plugins to PHPStan level 7 on controller level, as the query input needs to be properly asserted/cast depending on if it is optional or required input (nullable or not).

cakephp-shim - 1.8.1

Published by dereuromark over 5 years ago

Improvements

Add read() method for entities to allow dot syntax convenience access.
$entity->read('tags.0.name') will return the property if it exists or returns null otherwise.

This compliments the getOrFail() part which does the opposite (guarantees the path to be present).

cakephp-shim - 1.8.0

Published by dereuromark over 5 years ago

Improvements

Allow adding get...OrFail() methods to Entity classes to have non-nullable return values asserted.
This is needed for chaining, as null-pointer-occurrences should be avoided here.

Just use the trait here:

use Shim\Model\Entity\GetTrait;

class Post extends Entity {

	use GetTrait;

        ...

}

It automatically provides the getters here for you.

// bad (tag could be null)
$tagName = $entity->tag->name;

// good (tag cannot be null as this would throw clear exception)
$tagName = $entity->getOrFail('tag')->name;

This will please both analyzers and IDE as well as throw meaningful exceptions in case the field is not set in the entity as expected in this particular case.

For all nullable cases you can still use the normal property access, of course.

Pro tip: Use the included IdeHelper EntityAnnotator replacement to allow annotations to be added for all of your entities' fields.

/**
 * @property int $id
 * @property string $title
 * @property \Cake\I18n\FrozenTime|null $created
 * @property \Tags\Model\Entity\Tag|null $tag
 * @method int getIdOrFail()
 * @method string getTitleOrFail()
 * @method \Cake\I18n\FrozenTime getCreatedOrFail()
 * @method \Tags\Model\Entity\Tag getTagOrFail()
 */
class Post extends Entity {
    ...
}
cakephp-shim - 1.7.2

Published by dereuromark almost 6 years ago

Bugfixes

Small NullableBehavior fix for nullable foreign keys.

cakephp-shim - 1.7.1

Published by dereuromark almost 6 years ago

Improvements

CakePHP 3.6+ from now on.

cakephp-shim - 0.7.1

Published by dereuromark over 6 years ago

Improvements

CakePHP 2.x maintenance release.

  • Configure::write('Shim.warnAboutBindModelMethod', true); added to warn you about the usage of bindModel() method.
  • Configure::write('Shim.warnAboutValidateProperty', true); added to warn you if Model::$validate was set as a class property.
  • Shim.Tree behavior fixed up
cakephp-shim - 0.7.0

Published by dereuromark over 6 years ago

Improvements

CakePHP 2.x maintenance release.

Added 'Shim.warnAboutRelationProperty'
Backported validationDefault() method
Fixed some small issues

cakephp-shim - 1.7.0

Published by dereuromark over 6 years ago

Included commits: https://github.com/dereuromark/cakephp-shim/compare/1.6.1...1.7.0

Improvements

CakePHP 3.6 compatibility.

The plugin now also is CakePHP 3.5+.

cakephp-shim - 0.6.2

Published by dereuromark over 6 years ago

Improvements

Backported Table::addAssociations()

cakephp-shim - 1.6.1

Published by dereuromark almost 7 years ago

Bugfixes

Small validation shim fix for simple string validation rules.

cakephp-shim - 1.6.0

Published by dereuromark almost 7 years ago

Bugfixes

  • Fixed simple validation shim cases.

Improvements

  • Added JsonType that respects null for DB fields (will not save string 'null').
  • Added YearType
  • Added BinaryUuidType (of what will come in CakePHP 3.6 to be used already in prior versions)
  • Improved CookieHelper with new 3.4 syntax, including a new getCookies() method to list available cookies.

Note: This version now requires CakePHP 3.4+

cakephp-shim - 0.6.1

Published by dereuromark almost 7 years ago

Bugfixes

Small 2.x fixes.

Package Rankings
Top 2.45% on Packagist.org
Badges
Extracted from project README
CI Coverage Minimum PHP Version Coding Standards