New York, USA 2015

The following are the talks defined for the event.

WORKSHOP DAY 1 - Thu, May 28th

09:00
12:00

Basic Workshop Day 1

Jorge GonzĂĄlez

- Introduction
- Development environment: Setup
- Creating a project
- Folder structure
- Non-standard setups
- Project configuration
- Changes from 2.x -> 3.x
- Baking a default CRUD
- Controllers
- Request
- Response

The slides are not available yet!

The video is not available yet!

13:30
16:00

Advanced Workshop Day 1 Part 1

José Rodríguez

- Quick overview of CakePHP 3.0: A glance on the new features in Cake 3 and the major differences from 2.x. A few tips for getting your apps as much 3.0 ready as possible so they can be migrated.
- Creating the project: We'll be using a virtual machine for getting up and running. We'll also be regularly deploying our progress on a cloud infrastructure.
- Flexible CRUD: Our application will be using dynamic scaffolding, this has the advantage of iterating with new features at a great speed, but we're going to investigate the best options for not losing flexibility in our app.
- Modelling data with the ORM tables.

The slides are not available yet!

The video is not available yet!

16:30
18:00

Advanced Workshop Day 1 Part 2

José Rodríguez

- Building a ReST API: This part will show the steps for creating a ReST API with authentication and managing permissions per field on each resource. We'll also be reviewing how to manage access tokens, validations and building an application flow with an API.
- Using entities and virtual properties.
- Authentication and Authorisation
collections and results processing.
- Using dispatcher middleware.
- Using the ORM for Search and Filtering: The new ORM offers great new features for composing complex queries and elaborate finders. We'll be taking advantage of these new possibilities to add advanced filtering to our app.

The slides are not available yet!

The video is not available yet!

WORKSHOP DAY 2 - Fri, May 29th

09:00
12:00

Basic Workshop Day 2

Jorge GonzĂĄlez

- Models
- ORM changes in 3.0
- Query builder
- Tables
- Entities (intro)
- Validation
- Reading data
- Saving data
- Behaviors
- Views
- Helpers
- Html helper
- Form helper
- Other core helpers
- Creating a basic layout
- Elements, Blocks and Cells (intro)
- Unit Testing
- Models
- Mocking
- Controllers
- Caching (intro)

The slides are not available yet!

The video is not available yet!

13:30
16:00

Advanced Workshop Day 2 Part 1

José Rodríguez

- Building Layouts with Cells: This part is aimed at showing the power of View Cells and how to properly use them for creating modular layouts.
- Localization: The world is growing smaller and we need to reach people with different languages and in different timezones. This section will focus on adapting your application to serve users in multiple countries.

The slides are not available yet!

The video is not available yet!

16:30
18:00

Advanced Workshop Day 2 Part 2

José Rodríguez

- Unit Testing: A good app is no good without tests. This will show the common testing patters in CakePHP and the use of Fixtures, Mocks and automated test execution.
- Logging and Profiling: Gathering data about how your app is performing and running is as important as having features. This part will show how to better structure your code to take advantage of logging and determine possible bottlenecks.

The slides are not available yet!

The video is not available yet!

CONFERENCE DAY 1 - Sat, May 30th

09:00
09:40

CakePHP Community Keynote

James Watts

Overview of the past year and an update on the status of the project and the CakePHP community.

The slides are not available yet!

The video is not available yet!

09:50
10:30

3.0.0 and beyond

Mark Story

3.0.0 was an enormous milestone for CakePHP. This talk will be a quick summary of what the core team's plans are beyond 3.0.

Things I'll cover are:

* The roadmap for 3.1
* Release cycles for 3.x
* Our plans for maintaining Cake 2x as well.

The slides are not available yet!

The video is not available yet!

10:30
11:10

MySQL 5.7

Dave Stokes

MySQL 5.6 has been our best received release to date and MySQL 5.7 is just around the corner. This session covers big changes in performance, replication, transportable table spaces, security, and administration. There are also some changes like setting the default SQL_MODE to STRICKT that will break some things (cough cough Wordpress) that you need to know before upgrading. Some come learn about all the new changes before you upgrade.

The slides are not available yet!

The video is not available yet!

11:20
12:00

Sleeping With Snubbers

Jad Bitar

After a very strict diet until reaching 3.0, CakePHP has lost most (if not all) the bad fat it accumulated as it aged. With it's fresh new looks, libraries that snubbed it in the past have joined it in bed for some ultimate fun. This talk will demonstrate how easy it has become to create CakePHP plugins to integrate with other PHP libraries to speed development and avoid re-inventing the wheel by showcasing a couple plugins already released (i.e. migrations, codeception, whoops, faker, etc.)

The slides are not available yet!

The video is not available yet!

14:30
15:10

Optimizing CakePHP 2.x apps

Juan Basso

Tips and tricks for optimizing CakePHP 2.x apps. The presentation will be focused on optimizations related with CakePHP and briefly talk about optimizations on environment and architecture.

The slides are not available yet!

The video is not available yet!

15:20
16:00

Running a CakePHP App in Different Operating Environments

Brian Porter

Web applications have to run in multiple environments. Those environments may include developers' local instances, in a staging or quality assurance environment and in production. Even the application's most basic dependencies, such as a database connection, tend to be different in each of these environments. Managing the settings for each of them can become tedious and error prone, especially when source control is involved.

This talk covers how to make your CakePHP app adapt its behavior to the environment in a clean way. The configurations for multiple environments can coexist and inherit from a base config, the configs can all be committed to source control and determining which set to activate can be dependent on whatever environment indicator works best for your app's situation. Also covered are code examples for how to keep the code in your app clean and independent of environment-specific logic, instead encapsulating everything unique about each environment into the configurations.

The slides are not available yet!

The video is not available yet!

16:30
17:10

Behind the scenes of Real Time Notifications.

Guillermo Mansilla

In this talk I would like to show how Real Time Apps work from the an architectural point of view, in order for me to show that, I plan to do a quick walk-through over important concepts such as:
The HTTP Protocol, XMLHttpRequest, XHR Polling, Long Polling, HTML5 and Web Sockets.

After explaining those concepts I plan to show an example on how to integrate a CakePHP app with Node.js and Socket.io in order to implement real time notifications.

The slides are not available yet!

The video is not available yet!

17:20
18:00

Powerful applications with AngularJS

Anna Filina

Long gone are the days when your Javascript functions were tangled with HTML or when you injected AJAX responses into DIVs. Meet AngularJS, the framework that brings you clean separation between application logic and templates, does the heavy lifting for backend communications, helps with multilingual support and much more. I will help you build better applications with less effort.

The slides are not available yet!

The video is not available yet!

CONFERENCE DAY 2 - Sun, May 31st

09:50
10:30

Agile database access with CakePHP 3

José Rodríguez

CakePHP 3 comes with a brand new ORM, built from scratch to take advantage of advanced SQL features and with the goal of being able to produce complex queries with ease in mind.

This talk will present several real-life examples of data retrieval using the new ORM and will weigh its advantages over using plain SQL or other libraries available in the market

The slides are not available yet!

The video is not available yet!

10:30
11:10

Beyond PHP : it's not (just) about the code !

Wim Godden

Most web developers focus on writing code. But creating web applications is about much more than just writing code. Take a step outside the code cocoon and into the big web ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.

The slides are not available yet!

The video is not available yet!

11:20
12:00

Essential Web Security

Eli White

XSS, CSRF, Session Hijacking, SQL Injection, Click Jacking, and so much more. All security vulnerabilities that you need to understand and address in website development. This talk will cover these concepts in depth to understand them and know how to protect yourself against them. Pure PHP(and JavaScript) solutions will be presented for how to address these so that you will understand the core solutions. Specific code examples will be shown showing what the vulnerabilities look like and how to identify them. It will then present solutions to close them down and protect yourself. Crucial information that every programmer needs to understand.

The slides are not available yet!

The video is not available yet!

14:30
15:10

How to write your own CakePHP cache engine with automatic failover

David Chancogne

The talk will focus on 3 main areas:

- How to write your own cache engine in CakePHP
- Exemple of writing a cache engine that uses Redis tree structure functionality to get a more powerful invalidation
- Exemple of a cache engine called FallBack that can leverage 2 existing engine for a better fall back mechanism in case of fail over (of Redis server for instance)

The slides are not available yet!

The video is not available yet!

15:20
16:00

SIMPLE IS GOOD, COMPLEX IS BAAAD

Mariano Iglesias

PHP has seen some major improvements in the past decade. The language has moved forward, and the community is now more involved in building tools that can be reutilized without killing kittens in the process (EFF you PEAR). But we are still making it way too difficult. Your average project is filled with unneeded complexity, code that should have never been written, and suffers from countless security issues (it's not JUST about escaping SQL, people!)

This talk deals with the need for simpler, more focused libraries. It's about questioning the tools we use, the frameworks we so dearly love. It's about change, and the things we need to do to move forward.

If you have NO interest in improving your daily work, in making your code more secure, more maintainable, and in the end more focused, then this talk is not for you. But if you are willing to question some established believes, and take the first towards enlightenment, then let's do it together.

The slides are not available yet!

The video is not available yet!

16:30
17:10

ACL is not missing

Geneller Naranjo

I'd like to talk about permissions and when ACL is good approach on the subject, most of times ACL is not necessary and a role based permissions map is good enough.

The slides are not available yet!

The video is not available yet!

17:20
18:00

Building Extraordinary Packages

Phil Sturgeon

Back in the day, we had PEAR packages. These were often very well written, but due to PEARs lack of popularity we ended up just using mega-frameworks and writing bundles, modules, cells and sparks for that framework. Since then Composer has been a bit of a savior, but the way in which we make these packages is still new and scary.

There are a lot of talks about building good code, and writing OOP well, but how do you make a Composer package that is as high in quality as you can? Things like SemVer, avoiding NIH syndrome verses knowing WHEN to fork or make a new package, responsible deprecation and loads more.

The League of Extraordinary Packages is a group of developers who have banded together to build solid, well tested PHP packages using modern coding standards. The name might be a little silly, but the group dedicates itself to active maintenance, handing over projects when a lead has to step aside, working together and an absolute dedication to following and supporting standards.

The slides are not available yet!

The video is not available yet!