Devel­op­ment changes in Craft 3

Brandon Kelly explains the development changes coming to Craft 3 in this 80-minute workshop recorded at Peers 2015.

The Future of Plugin Dev from Craft CMS on Vimeo.

To help refer back to points in the video, here are are the time markers for the topics covered:

  • 00:00 - Intro
  • 05:46 - What has changed in PHP?
  • 06:50 - PHP 5.2 (JSON and ZIP extensions, Upload progress-tracking hooks, DateTime/DateTimeZone)
  • 07:48 - PHP 5.3
  • 08:19 - Namespaces
  • 10:40 - Late static bindings
  • 12:32 - Closures
  • 13:11 - PHP 5.4
  • 15:57 - Example of traits
  • 16:09 - Example of short array syntax
  • 16:48 - Example of function array dereferencing
  • 17:26 - Example of class member access on instantiation

  • 18:40 - What has changed in Yii?

  • 18:45 - Class names and namespaces
  • 20:17 - Path alias example
  • 21:12 - Important path aliases to be aware of
  • 23:20 - Objects and Components
  • 25:56 - Examples of Objects
  • 26:53 - Examples of Components
  • 27:12 - Configuring Objects
  • 28:26 - Service Locators
  • 29:37 - Modules
  • 29:54 - Applications (Web requests / Console requests)
  • 30:48 - Controllers
  • 31:20 - Request vs. Response
  • 33:36 - Formatted Response Bodies (JSON, JSONP, XML, ...)
  • 34:27 - Events in Yii 1
  • 35:29 - Events in Yii 2
  • 36:06 - Class-level event handlers
  • 36:36 - Asset bundles (for JS and CSS resources)
  • 38:28 - DB Queries
  • 39:27 - Query Methods
  • 40:51 - SELECT Query Examples
  • 42:35 - Command Methods (Query Definition, Management, Execution)
  • 43:35 - How Query and Command map together
  • 44:05 - Active Record
  • 45:34 - Internationalization

  • 46:00 - What has changed in Craft?

  • 46:34 - Namespaces
  • 47:20 - Accessing the Application instance (Craft::$app)
  • 48:30 - Accessing the Application components (Craft::$app->getEntries())
  • 50:19 - Application component name changes
  • 51:02 - Routes and controllers
  • 53:38 - Models
  • 55:12 - Records
  • 56:30 - Templates and Views
  • 01:00:47 - Types
  • 01:01:27 - Field type architecture
  • 01:03:13 - Widget type architecture
  • 01:03:22 - Task type architecture
  • 01:03:29 - Element type architecture
  • 01:03:35 - Type Settings
  • 01:05:36 - Element Queries
  • 01:08:03 - Element query example
  • 01:10:31 - Plugins
  • 01:13:30 - Example config.json
  • 01:13:41 - Installing plugins
  • 01:15:08 - Example install migration

Don't miss any Craft tips, tricks, and community updates