CakePHP 框架的工具

euromark 917b70df89 remove debug statement 12 年 前
Config 55fa71f111 token sql 12 年 前
Console 6fe605e08d Simplify FolderLib::clear 12 年 前
Controller 5ecaa9c809 cs fixes 12 年 前
Lib 6fe605e08d Simplify FolderLib::clear 12 年 前
Locale 560d168a8b qlogin and fixes 14 年 前
Model 8cb6b85edd Resolves PR 11 12 年 前
Test 917b70df89 remove debug statement 12 年 前
TestSuite 6a51e7b38c cs 12 年 前
Vendor be34275d32 remove die() 12 年 前
View 6fe605e08d Simplify FolderLib::clear 12 年 前
webroot bbb8cacfa2 doc update 14 年 前
.travis.yml f1814f1288 revert 12 年 前
CONTRIBUTING.md 3968182a56 Make convert shell work with dos2unix 6 12 年 前
README.md 4c964731cc readme 12 年 前
USAGE 5c8f26c714 usage update 13 年 前
composer.json 11d64300ad installer name for composer 12 年 前

README.md

CakePHP Tools Plugin

A Cake2.x Plugin containing several useful tools that can be used in many projects.

Please note: New functionality has been tested against 2.x (current master and dev) only. Please upgrade if possible.

How to include

Installing the Plugin is pretty much as with every other CakePHP Plugin.

  • Put the files in APP/Plugin/Tools
  • Make sure you have CakePlugin::load('Tools') or CakePlugin::loadAll() in your bootstrap

Tip: You can also use packagist now @ https://packagist.org/packages/dereuromark/tools-cakephp

That's it. It should be up and running.

The basics

Include the Tools bootstrap file in your APP/Config/bootstrap.php with

App::import('Lib', 'Tools.Bootstrap/MyBootstrap');

You cannot use App::uses because this file does not contain a class and needs to be included right away (not lazy loaded).

MyModel can be extended to use more powerful validation and other improvements:

App::uses('MyModel', 'Tools.Model');

class AppModel extends MyModel {
}

MyController can be extended for DRY improvements and to fix some common bugs:

App::uses('MyController', 'Tools.Controller');

class MyController extends MyController {
}

MyHelper can be extended and used this way:

App::uses('MyHelper', 'Tools.View/Helper');

class AppHelper extends MyHelper {
}

The test suite improvements can be used via:

App::uses('MyCakeTestCase', 'Tools.TestSuite');

class SomeClassTest extends MyCakeTestCase {
}

To run any of the console commands (replace [ShellName] and [command]!):

cake Tools.[ShellName] [command]

The models, behaviors, helpers, libs and other classes are used the same way prefixing them with the plugin name:

App::uses('GooglLib', 'Tools.Lib');
App::uses('TimeLib', 'Tools.Utility');
App::uses('GeocoderBehavior', 'Tools.Model/Behavior');
...

Tip: For how to use them, try to find some information in the test cases. Usage for some larger modules: https://github.com/dereuromark/tools/blob/master/USAGE

The cool stuff

Useful fixes

  • Auto-trim on POST (to make validation working properly).
  • Auto-aliasing for models' "order" properties.
  • Disable cache also works for older IE versions.
  • Redirect with additional encoding for Apache (if still using named params insteaf of query strings).
  • Default settings for Paginator, ... can be set using Configure.
  • Minor misc. tweaks.

Additional classes and features

  • Using the Common component's flashMessage() you can have colorful (success, warning, error, ...) flash messages. They also can stack up (multiple messages per type). This way no message is lost when redirecting twice etc.
  • The Passwordable behavior allows easy to use functionality for frontend and backend.
  • Geocodeable, WhoDidIt, Confirmable and Bitmasked behaviors.
  • With MyModel you can build subqueries the Cake way.
  • Tokens, Qlogin, TinyUrl, KeyValue functionality included.
  • DiffLib, ZipLib, WeatherLib and many more lib functionality.
  • The TextExt, Datetime, Numeric and FormExt helpers provide extended functionality if desired.
  • Tree helper for working with (complex) trees.
  • GoogleMapV3, Gravatar, Qrcode, Timeline, Typography, Ical, Hcard provide additional helper functionality.

and much more

Disclaimer

Use at your own risk. Please provide any fixes or enhancements via issue or better pull request. Some classes are still from 1.2 (and are merely upgraded to 2.x) and might still need some serious refactoring. If you are able to help on that one, that would be awesome.

Status

Build Status Total Downloads

Branching strategy

The master branch is the currently active and maintained one and works with the current 2.x stable version. Older versions might be found in their respective branches (1.3, 2.0, 2.3, ...). Please provide PRs mainly against master branch then.

For details on how to contribute please read the CONTRIBUTING page.

License

Licensed under The MIT License unless specified otherwise (in the classes).

Recent changes (possibly BC breaking)

  • 2013-02 Removed PasswordChangeBehavior in favor of its new name Passwordable.
  • 2013-02-25 Removed deprecated bootstrap functions and moved DebugTab functionality into Bootstrap namespace (you need to now manually include it if needed).