Don't code bake, an introduction to CakePHP 3. A presentation giving an overview of the latest version of the framework and why I think it's worth checking out.
Building a plugin like a pro it’s not only about code, it’s also about how you do that. I talked about the workflow, how WordPress works and how I build plugins. I also discussed some mistakes I made along the way. Doing something in a hurry is never a good thing.
Live coding session that will guide you step by step through building a solid foundation for your Angular project using webpack.
Webpack is a powerful module bundler that is easy to configure and use. In most cases it can replace your build system by taking care of code compilation, optimizations and bundling.
Building a plugin like a pro it’s not only about code, it’s also about how you do that. I talked about the workflow, how WordPress works and how I build plugins. I also discussed some mistakes I made along the way. Doing something in a hurry is never a good thing.
Live coding session that will guide you step by step through building a solid foundation for your Angular project using webpack.
Webpack is a powerful module bundler that is easy to configure and use. In most cases it can replace your build system by taking care of code compilation, optimizations and bundling.
There are tons of awesome new tools produced by terrific companies and developers that get everyone excited about using their fancy new tool-set by essentially starting from scratch. This talk is not about using a fancy new framework and rewriting your entire application. As a developer who has spent the majority of his time working in legacy codebases where the first commits pre-date jQuery, it's hard not to get wrapped up in the "I want to rewrite the whole app with X" mentality. But in reality, time constraints or just the legacy framework you're building your apps with doesn't allow for that. Or, more realistically, it just needs to work and there is no business case for a rewrite. What this talk will show you how you can still enhance your front-end operation within an existing legacy codebase. I'll talk about first steps to modularizing a monolith, or simply taking a portion of a legacy app and modernizing it with a new toolset. This not only helps you as a developer to succeed with new tools, it makes you feel like you aren't being left behind in the modern world. Whether you're using legacy jQuery, or just some crammed together JavaScript, you shouldn't lose the ability to modernize your application, just because you can't buy in 100% to a modern framework.
Tips on how to break apart your monolithic JavaScript
Building an extension method to modularize your application
Creating backcompat methods for legacy code modernization
Using a modern framework for a portion of your app, and integrating that with your existing code.
Other considerations (minification, module loaders, tests, etc)
Using Git with WordPress - Presented by Nigel Rodgers.WordCamp Harare
I will give a brief introduction to the Git Version Control System (VCS). Short demonstration of using git with WordPress. The demo will be for coding a theme or child theme. Then advantages and disadvantages of using a VCS.
Untangle Your Front End Development with Visual Studio 2015Scott Heckel
Microsoft has enhanced the VS tooling to support the front end development standards. In this session, we will setup a web project and learn to utilize node, npm, grunt, gulp, sass and bower to get our website up and running. Never heard of those tools before? Don't worry. We will cover that too.
Going Global with WordPress Multilingual (WordCamp Denpasar 2016)Dat Hoang
By default, WordPress accepts a single language only. In this topic, I talk about the possibility to have a multilingual WordPress site.
Event 1: WordCamp Denpasar 2016
Link: https://2016.denpasar.wordcamp.org/
Event 2: WordCamp Manila 2016
Link: https://2016.manila.wordcamp.org/
WordPress on the Jamstack by rtCamper Muhammad Muhsin @ WordPress Colombo MeetuprtCamp
Jamstack sites have received huge popularity lately. Muhammad Muhsin has explored WordPress as a viable back-end API for Jamstack, which turned out to be a great solution. He has built multiple Jamstack sites using WordPress for data via REST API or GraphQL.
In this session, Muhammad introduces WordPress as an API for Jamstack sites.
There are tons of awesome new tools produced by terrific companies and developers that get everyone excited about using their fancy new tool-set by essentially starting from scratch. This talk is not about using a fancy new framework and rewriting your entire application. As a developer who has spent the majority of his time working in legacy codebases where the first commits pre-date jQuery, it's hard not to get wrapped up in the "I want to rewrite the whole app with X" mentality. But in reality, time constraints or just the legacy framework you're building your apps with doesn't allow for that. Or, more realistically, it just needs to work and there is no business case for a rewrite. What this talk will show you how you can still enhance your front-end operation within an existing legacy codebase. I'll talk about first steps to modularizing a monolith, or simply taking a portion of a legacy app and modernizing it with a new toolset. This not only helps you as a developer to succeed with new tools, it makes you feel like you aren't being left behind in the modern world. Whether you're using legacy jQuery, or just some crammed together JavaScript, you shouldn't lose the ability to modernize your application, just because you can't buy in 100% to a modern framework.
Tips on how to break apart your monolithic JavaScript
Building an extension method to modularize your application
Creating backcompat methods for legacy code modernization
Using a modern framework for a portion of your app, and integrating that with your existing code.
Other considerations (minification, module loaders, tests, etc)
Using Git with WordPress - Presented by Nigel Rodgers.WordCamp Harare
I will give a brief introduction to the Git Version Control System (VCS). Short demonstration of using git with WordPress. The demo will be for coding a theme or child theme. Then advantages and disadvantages of using a VCS.
Untangle Your Front End Development with Visual Studio 2015Scott Heckel
Microsoft has enhanced the VS tooling to support the front end development standards. In this session, we will setup a web project and learn to utilize node, npm, grunt, gulp, sass and bower to get our website up and running. Never heard of those tools before? Don't worry. We will cover that too.
Going Global with WordPress Multilingual (WordCamp Denpasar 2016)Dat Hoang
By default, WordPress accepts a single language only. In this topic, I talk about the possibility to have a multilingual WordPress site.
Event 1: WordCamp Denpasar 2016
Link: https://2016.denpasar.wordcamp.org/
Event 2: WordCamp Manila 2016
Link: https://2016.manila.wordcamp.org/
WordPress on the Jamstack by rtCamper Muhammad Muhsin @ WordPress Colombo MeetuprtCamp
Jamstack sites have received huge popularity lately. Muhammad Muhsin has explored WordPress as a viable back-end API for Jamstack, which turned out to be a great solution. He has built multiple Jamstack sites using WordPress for data via REST API or GraphQL.
In this session, Muhammad introduces WordPress as an API for Jamstack sites.
Métodos Agéis e como podem ser usados em projetos de BPM. Agile BPMLecom Tecnologia
Apresentação utilizada para o webinar sobre o que são Métodos Ágeis e como podem ser usados em projetos de BPM. Acesse no link: https://www.eventials.com/lecom/o-que-sao-metodos-ageis-e-como-podem-ser-usados-em-projetos-de-bpm/
Monster JavaScript Course - 50+ projects and applicationsLaurence Svekis ✔
Get this Course
https://www.udemy.com/javascript-course-projects/?couponCode=SLIDESHARE
Portfolio builder loaded with projects and applications that you can use, extend on and enhance to add to your portfolio
JUST GOT BIGGER - more updates to come - YOU FOUND IT
Grow your portfolio - showcase what you can build with JavaScript
Learn JavaScript have fun with interactive and dynamic web applications.
Over 529 downloadable resources - 57 articles - 43+ hours on-demand video, 57 Sections
Over 614 HD video lessons
Over 51+ projects and web applications. Projects can be used as started projects to extend and enhance. All JavaScript focused.
4 downloadable ebook guides 200 pages and 3 x 60 pages - with code and resource links
No libraries JUST JAVASCRIPT and JAVASCRIPT DOM
This is the course you've been looking for..........
Everything you need to get started with JavaScript, expand your knowledge about using JavaScript, and more included.
It’s arrived, and bigger than expected!!!
For anyone who wants to supercharge their JavaScript learning - building and applying JavaScript to over 50 projects and challenges… this course is for YOU!!!!
From JavaScript beginners to all levels, course is presented in a fun interactive format that will challenge you. Move through the lessons of the course as you want to learn them, variety of ways to benefit from it. Learn alongside, try before you see the solution, try after you view the solution. It’s up to you! Unique format for learning encouraging you to try the code. Of course source code is included in every step of the way.
Most often asked for ARE PROJECTS - and this course delivers! Over 50 and will grow over time as more projects and challenges get added. You can select the projects you want to do or take them in order, it’s up to you.
Loaded with games and so many mini projects guaranteed to help you learn more about JavaScript and DOM manipulation. All JavaScript code no libraries or short cuts.
Explore how to apply JavaScript to create interactive and dynamic web content - that will impress your friends.
Extend on the projects and add them to your portfolio, to showcase skills you have learned.
Useful real world projects coded with simple JavaScript for developers of all levels.
No better way to learn than to try the code and produce something fun and useful with it. Learn to create amazing things with JavaScript bringing your web content to life.
This will keep you busy and provide you the opportunity to learn and experiment with code. Try it. All the projects are designed in a starter type format so that you can build on them and customize to make it your own.
Portfolio Builder 50+ projects
This course includes full introduction to coding with JavaScript, all core syntax and how to apply it to make things happen. Create your own code - loaded with challenges and code snippets.
CakePHP is widely used by web development companies to create multi featured websites with simple procedures. Being an open source, CakePHP development offers a robust platform for flexible web development.
Cake PHP provides multiple libraries that support common tasks and it also facilitates organizing the code in the folder, associating code with files etc. It results in reduced time for rewriting and organizing the code. This framework makes web development easier with its advanced features.
The presentation deals with the special use cases of Vue.js, contains an overview of existing solutions like React, Angular and compare them on a high level, shows in which cases Vue.js can boost developers productivity.
This presentation by Igor Nesterenko (Lead Software Engineer, Consultant, GlobalLogic Kharkiv) was delivered at GlobalLogic Kharkiv JS TechTalk on December 18, 2017.
Introduction to Web Components & Polymer Workshop - JS InteractiveJohn Riviello
Web Components are a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps. With libraries such as Polymer that is built on top of Web Components, it is now possible to easily create fast Progressive Web Apps (PWAs) without the overhead of a framework. This workshop is a hands-on introduction to Web Components and the Polymer library. You will learn how to build your own components with both vanilla JavaScript and Polymer using the newly released Polymer 3.0 library, as well as assemble a simple PWA using existing open source Web Components. John & Chris will also cover Custom Properties (CSS Variables), which are supported natively in all of today's modern browsers and polyfill for older browsers by Polymer, to style our custom elements.
Building a µservice with Kotlin, Micronaut & GCPRobert MacLean
In this session, Robert will take the audience through the real-life learnings he has gained in building microservices for a large UK retailer using Kotlin, Micronaut, DataStore and running it on GCP.
This session is meant to be practical in its advice and is targetted at those new to Kotlin and microservice development and attendees can expect to walk away knowing how to get started in this space.
While GCP, in particular, DataStore, Storage, and GKE will be mentioned they are not the core focus with about 10min of the talk focused on that (and the bulk of that being on DataStore).
First shared at DevFest 2019
JavaScript news in December 2017 edition:
+ Kill Internet Explorer
+ Google Chrome 63 Released
+ How to Cancel Your Promise
+ Parcel
+ Turbo
+ Average Page Load Times for 2018
+ Vulnerable JavaScript Libraries
+ New theming API in Firefox
+ Bower is dead
+ Extension Tree Style Tab: Reborn
+ React v16.2.0
+ WebStorm 2017.3.1
+ The Best JavaScript and CSS Libraries for 2017
At Ninefold we've spent 3+ years with Chef. We've built a PaaS with Chef and we manage our internal systems with it.
In this presentation we explore the design decisions we needed to make in order to build the platform. It highlights the things we've learned along the way that weren't exactly obvious when we started.
Making sense of the front-end, for PHP developersLewiz
The complexity of frontend web development has increased measurably. Gone are the days of jQuery. New frameworks like React and Vue and tools like Webpack are the new deal.
In this talk, we will try to make sense of the current state of front-end development and how it changes how we write backend code. More specifically, we will see how Symfony and Laravel help us in that regard.
Web components are a collection of technologies combined to allow developers to create reusable components(bundles of HTML, CSS, JavaScript). They let us effectively describe the implementation of HTML elements that already exist for the web.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
3. Introduction
PHP Developer
at UK Web Media
in Weyhill
http://www.ukwm.co.uk
Cyberstalk me!
https://twitter.com/YellDavid
https://github.com/davidyell
http://careers.stackoverflow.com/davidyell
http://uk.linkedin.com/in/davidyell
#cakephp on Freenode IRC
David Yell
aka Neon1024
5. What is CakePHP?
CakePHP makes building web applications simpler, faster and require less code.
RAD
Rapid Application
Development
MVC
Model View Controller
7. Why is Cake good?
Convention over configuration
Less of this More of this
8. Do work.
Make people happy.
???
Profit!
Why should I use it?
CakePHP makes building web applications simpler, faster and require less code.
9. What's in the box?
5.45.4
ORMORM
Simpler configuration External librariesFramework components
10. Freebies!
Behaviours
● Counter cache
● Timestamp
● Translate
● Tree
Components
● Authentication
● Cookie
● CSRF
● Flash
● Paginator
● Request Handler
● Security
Utilities
● Caching
● Email
● File & Folder
● Hash
● HttpClient
● Inflector
● Internationalisation
and localisation
● Logging
● Number
● Router
● Security
● String
● Time
● Xml
Helpers
● Flash
● Form
● Html
● Number
● Paginator
● Rss
● Session
● Text
● Time
● Url
11. Model
Tables and Entities
● Repository pattern
● Tables find your entities
● Loves to play with Databases
● Tables serve up tasty entities
● Varied shared behaviour
Example
src/Model/Table/PostsTable.php
src/Model/Entity/Post.php
Table class
Query object
Database
class
DB Driver
Data
store
12. Behaviors
Share the love
● Refactor shared model
methods
● Reusable code
● Complex data operations
● Callbacks
● Dynamic attachment
Models
Shared
Logic
Behavior
13. Controller
The brain
● Dad for the day
● Bosses the Model
● Herds the View
● Looks after the request
● Callbacks
Request
Routing
Controller
Model
View
15. Views
The pretty bit
● Response
● Works with the Controller
● Shiny veneer
Data
Layout
Template
View
Example
src/Template/<Plural>/index.ctp
16. Helpers
Share the love
● Give views some brains
● Wrap up complex
functionality
● Reusable
ViewNumber
Form
Html
Paginator
Text
Time
17. An extra slice of views
● Build complex templates
● Reusable and extendable
● Dynamic shared content
● Complex data
Elements
View Cells
BlocksBlocks
View
18. Bake for 5 minutes
Using Bake you can complete the Bookmarker tutorial in under 5 minutes!
19. Plugins
● Applications in applications
● Can wrap anything
● Distributable
● Self contained
● Single responsibility
functionality
20. The book
CakeBot: Book is http://book.cakephp.org the answer to life, the universe and all your bun making needs.
23. Ecosystem
● http://cakephp.org
● Book – http://book.cakephp.org
● Plugins – http://plugins.cakephp.org
https://github.com/cakephp
Check the core teams
repositories for more stuff
Use Muffin – https://github.com/usemuffin
Friends of Cake – www.friendsofcake.com
Six years commercial experience, mostly agencies doing campaign work.
Started with HTML on GeoCities.
Self-taught myself PHP whilst building an arbiter for the Howling Rain alliance in Planetarion.
UKWM do campaign and affiliate marketing work, we are recruiting for another developer so if this presentation sounds like something you&apos;d be interested in let me know and I can hook you up.
This is my first presentation so be gentle!
I will hopefully have some time at the end for questions.
CakePHP is awesome and I think so, and hopefully after this presentation you will to.
So I mentioned RAD and MVC. Everyone heard of these two principles?
Wikipedia says “In general, RAD approaches to software development put less emphasis on planning tasks and more emphasis on development.”
It&apos;s worth noting that you do want to still do a little planning, mostly with your database. What information you want to store and how to store it.
In essence it&apos;s more about building stuff than chatting about building stuff.
MVC is about creating separation of concerns and keeping code clean and DRY (don&apos;t repeat yourself) which is related to refactoring for me at least, but that&apos;s a bit off topic here.
CakePHP is a PHP based MVC RAD framework. The idea is to allow rapid development of applications but also be flexible enough to allow customisation and further development.
In the top 10 most starred php frameworks on github (pos 8)
Two released major versions, 2.x and 3.x
Version 3.x currently released, under active development, nearly 7k commits to 3.x before release. Since release of 3.0.0 there have been 850 commits. 3.0.9 just released this week.
More than 8 million visitors to the framework website
Over 31 million page views of the website
10 years of life! Completely open source, community driven development.
Mention that anyone can contribute and is welcome to do so, it&apos;s encouraged.
Talk about the documentation being maintained and that people can also contribute back it quickly and easily, the &apos;improve button&apos;
CakeFest 2014 had over 110 attendees from 22 different countries!
CakePHP maintains a presence in social media, with twitter, facebook, google groups, youtube, podcast and active stack overflow community.
Instead of configuring your application you can simply stick to conventions in the framework to have everything work out of the box.
Of course you can override the conventions when and if you want to.
For example you can have a Table reading from a db table with a different name if you want.
Again, I&apos;m lazy. I like not writing and validating YAML or XML.
Anyone hate things not working when there is a missing character in your configuration? I do.
Plural db tables, plural Table classes, singular Entities, plural Controllers and plural Template folders.
For example a database table called &apos;people&apos; would have a model class called &apos;Person&apos; and use the &apos;PeopleController&apos; and have it&apos;s views in the &apos;people&apos; folder.
Cakes inflector will take care of pluralisation and singularisation of words. You can obviously add your own rules, but it currently understands things such as the example, and also fish and sheep.
I want to be happy
I want to make people happy. They might be my colleagues, clients or internal project stakeholders.
I want you guys to be happy.
Happiness breads motivation. It helps you guys get out of bed and build awesome applications every day.
This mean delivering applications and functionality to project stakeholders on time and in budget.
Using a RAD MVC framework you&apos;re able to develop complex applications very quickly, iterate early, and fast, but still to a high standard.
A framework helps to give a standardised basis of work for developers meaning that code becomes more transferrable and easier to maintain.
The &apos;profit&apos; here might be happyness, it might be motivation, it might be a happy client, a great application, a fully passing test suite, green CI reports. All kinds of things.
Make sure to pick the right tool for the job. Noone can claim that any one tool or framework is a blanket tool for all cases.
I rebuilt my companies most profitable website from a legacy system to cakephp, due to a deadline, in one week and it&apos;s still live and living happily.
It even went live on a Friday of a bank holiday when I had the Tuesday off. I don&apos;t test, but when I do, I do it in production!
Cake is tested on Linux and Windows, as well as tested in HHVM
Has full composer support.
3.x has a minimum requirement of php 5.4.16
The ORM (db layer) has been written to be very lazy and use query objects.
Routing api has been rewritten
More consistent and now simpler to configure, now just one app.php file to setup your application, so less faff with Git and setup in production.
Slicker Configuration class allowing easier config access
Making more use of external libraries such as Carbon, Aura and Password Compat (for php5.4)
No need to worry about Composer dependancies!
All this is included! Think of all the things you could build with so many handy tools right at your fingertips!
Hash is a utility class which is used to doing operations on arrays using X-Path notation. Such as stripping out all Posts with a certain tag from a set of data.
The rest I&apos;m sure you can work out what they do from their names. You&apos;ll notice Number and Time, these use the library classes which are wrapped into the Number and Time helpers, so you can use the functionality in models or controllers.
In 3.x a number of these classes have been changed around, some, like the FlashComponent are due to refactoring elsewhere, in this case the SessionComponent.
&lt;Talk a bit about some of the various classes, email, security, etc&gt;
Anything to do with data should be in a model.
Extends AppModel.
Fat models are good, many functions can be refactored into models to keep your controllers thin and allow your controllers to access the methods through the model.
A datasource actually does the heavy lifting against the data provider. So you can create any datasource you want and it remains transparent to the model.
Can write a datasource for anything, mysql, mongo, api, etc
Models store contain your data when it&apos;s returned.
In 3.x you&apos;ll get a query object instead which contains a collection of objects.
Used to build relationships between objects in the application. Post hasMany Tag for example would be defined in the model.
Deals with data validation in your forms using the rules defined in your models.
Spelling. &apos;murica
Behaviours are essentially mixins for your models.
In order to keep your fat models organised any shared logic or callbacks that you need to apply to multiple models can be refactored into a behaviour.
This allows you to easily attach that behaviour to any model to give it access to that functionality.
Example, you want to timestamp when a record changes. You&apos;d go right in for the &apos;beforeSave()&apos; method to add a timestamp to the data. However you don&apos;t want to write the same code in the same callback in each model. So why not make a Timestamp behaviour, which you can then attach to the models which you want to have timestamping. Simples!
Examples: Containable, Linkable, Translate, Listable
Extends AppController so there is inheritance.
Dad for the day! It deals with both the incoming request object, preparing the response object and dispatching the view.
The controller has a single responsibility. So an OrdersController deals with orders. A UsersController deals with Users.
Contains public methods called actions, which are your &apos;things which do things&apos;. Such as Add, Edit, View and Delete.
Has callbacks allowing you to change data and perform operations at various stages of the controller execution. BeforeFilter, beforeRender and afterFilter()
Components are similar to Behaviours in that they are mixins for your Controllers.
If you are writing the same logic in lots of controllers, stop! And think about refactoring the code into a component. Always keep code DRY.
Don&apos;t be tempted to put public controller actions into a component! Think more about actual php code that those methods might need and refactor that.
Example, Session, Pagination, Security
So our routing has found the controller, the controller has got the data from our model and has set it to the view.
The V in MVC. Responsible for generating specific output required for the request.
This could be HTML, Xml or Json depending on the request. It might even be a PDF or another file for download.
By default, most views are HTML using the .ctp extension (cake template) which is just standard php+html.
The framework has automatic Json and Xml views built in which can be used using the RequestHandlerComponent. This makes building API&apos;s super easy as you don&apos;t need to worry about building your api output.
Layout file to implement our shared html. Layouts wrap views common markup should be in the layout. Eg, JS & CSS
Templates can be extended from each other, so if you want to break up your common view parts into views to inherit from you can do that.
The actual view template should have no logic ideally, but you&apos;ll end up with some foreachs in most cases. Refactoring view logic uses helpers which we&apos;ll come onto shortly.
Helpers are the component-like classes for the presentation layer of your application. They contain presentational logic that is shared between many views, elements, or layouts.
As helpers are actual classes any complex functionality can be easily wrapped into a helper to prevent adding of logic to templates.
Here are some of the core helpers. Form helper deals with generating form fields. The Time helper for example can do &apos;time ago in words&apos; and such. So anything which requires some logic. If you start writing PHP in your views, stop and think about using a helper instead.
Helpers are portable. You can reuse them in different projects so it&apos;s always worth making the code and output quite generic so that you can reuse them.
For UKWM we have a php prices library for calculating prices, annual, monthly, averages, etc and I have wrapped this into a helper, so that I can, in my view, simply say $this-&gt;Price-&gt;monthly() and get a monthly price.
In 2.x dynamic elements required requestAction() which was bad because it needed caching due to the dispatch cycle. In 3.x this has gone and Cells are in to replace it.
Cells have their own controller and view file. They are ideal for reusable page parts which need logic, data and specific rendering. Cells do not dispatch sub-requests making them more efficient than requestAction(). Eg, data driven nav, sidebar with category counts.
Elements which are shared static HTML which can be included in any view. This allows you to build a static navigation, sidebar or similar with only one place for the markup. Data can be passed into elements and they can be cached easily.
Blocks allow for shared content in memory, but can be appended to from the view. Mostly used to for things like javascript and meta. So you can append javascript to the end of your whole page from the view.
By using the convention over configuration we are able to leverage the automated coding tools in the shell to write out our basic code for us.
The bake shell task allows rapid prototyping of features or for you to just build a whole site out to see how it&apos;ll work. You can then proceed to customise the application as you need.
The great thing with the bake shell specifically is that the code generated is based on a bake theme, which you can customise. So if you want to change anything that is being generated you can simply change the bake theme and rebake to get new code!
I&apos;ve actually built a plugin which has my own bake theme for generating my admin areas so that I can include all the customisations that I like, such as Twitter bootstrap right away.
They always say that if you do something more than three times you should automate it, so why not the same with how you automatically generate your code?
So here I have created an ERD in MySQL Workbench and used the forward engineer tool to build my database automatically. Then I can use the bake shell task to automatically build my application code.
From here I can run it in my browser using the built in php server. By running &apos;Console/cake server&apos;.
Plugins are essentially a Cake application. They can be linked and executed inside your cake application as if they were application code.
A plugin could provide any functionality to your application, from a Users plugin for managing users, with full stack MVC layers, or it might be a single behaviour for attaching to a model.
Any Cake elements which you would like to reuse in more than one application, think about refactoring it into a plugin.
In most cases plugins generally contain Behaviours, Components and Helpers, as they provide the ability to add extra functionality to existing objects within your application.
So you&apos;re convinced right? This is awesome. It&apos;s fast, it&apos;s easy and best of all it does what you want and doesn&apos;t get in your way when you want to do something different.
So what is the first step? Where do I start?
Got to blog tut slide -&gt;
Everything is on Github. The framework source code, the core developers, most of the plugins, pretty much everything. I&apos;d recommend searching Github for anything you might need as a first port of call.
There is also the &apos;Community&apos; menu on the Cake website, which has links to pretty much every community presence for CakePHP across the internet.
I&apos;ve included the two main sites here, book and plugins which I use on a daily basis.
The Friends of Cake initiative was started by a few of the core team and has since branched out to include some of the community also. I am a member of this team. We have a bunch of useful plugins and tools available.
If you would like to use Composer with the 2.x branch, we have that already setup here. We also have CakePHP Vagrant + Puppet boxes setup here if you want to try those.
I would also recommend checking the core team members personal profiles on Github. Most of them spend time working on Cake plugins in their spare time and you&apos;ll find that work in their own repos. It&apos;s also worth following so that you can help out with projects that they are working on. The core team are all really nice people and they are usually happy to get feedbacks, ideas and pull requests for things they are working on.If in doubt, ask.