際際滷

際際滷Share a Scribd company logo
3.0.0 & Beyond
May 15, 2005
3.0.0
March 22 2015
Some Things Could
Have Been Better
3 Years is a Long
Time
Lots of Breaking
Changes
The most weve ever had.
Upgrading is Hard
Missing Datasource
Examples
Some Things Went
Really Well
Community
Involvement
From the very 鍖rst dev release, the 
community was helping.
Documentation
Complete on Day 0
80K Downloads 
in 2 Months
The new ORM is
Awesome
We can thank Jose Lorenzo
So, Now What?
2.7.x
July 2015
3.1.x
July 2015
3.2.x
January 2016
Mailers
Simple conventions for emails.
Mailers
namespace AppController;
use CakeMailerMailerAwareTrait;
class UsersController extends AppController
{
use MailerAwareTrait;
public function register()
{
...
$this->getMailer('User')->send('welcome', [$user]);
}
}
Console
Improvements
More formatting options
Shell Helpers
$func = function ($progress) {
// Do work
$progress->increment();
};
$this->helper(progress)->output($func);
$progress = $this->helper('progress');
// Progress through 300 things
$progress->init(['total' => 300]);
$progress->increment($i);
$progress->draw();
ORM Improvements
More ways to load relations
ORM Improvements
// Lazy eager loading
$articles = $this->Articles->find()->all();
$enrichedArticles = $this->Articles->eagerLoad(
$articles,
['Users', 'Tags']
);
// Not matching - find bookmarks not tagged with X
$query = $this->Bookmarks->find()
->notMatching('Tags', function ($q) {
return $q->where(['Tags.name' => 'Awesome']);
});
ElasticSearch
A fully featured ODM
ElasticSearch
use CakeElasticSearchType;
$invoices = new Type('invoices');
$query = $invoices->find()
->where([
'name.first' => 'jose',
'age >' => 29,
'or' => [
'tags in' => ['cake', 'php'],
'interests not in' => ['c#', 'java']
]
]);
PSR-7
Http Client and Middleware
Continuous Plugin
Releases
Bake, DebugKit, Migrations, ElasticSearch
Backwards
Compatible
All the way through 3.x
Backwards
Compatible
 Public methods wont change their signatures.
 Public properties will continue to be available.
 Protected methods may change signatures.
 Protected properties may change.
Upcoming Releases
What about PHP5.5?
Or 5.6?
4.0
Cleanup
Remove deprecated features.
PHP7
Typehints, return values
You can Help
Thanks!

More Related Content

CakePHP 3.0 and beyond