SlideShare a Scribd company logo
Learn how to develop withCakePHP Boston PHP : Michael Bourque Part I Feb 17th, 2010
Welcome to Boston PHP Started in 2002 Open styled meetings 66 Meetings so far 600 Members strong Location, Location, Location Boston, Cambridge, Norwell, Salem, Somerville, Quincy MIT, Microsoft, BU meetup.com/bostonphp
Boston PHP Past Meetings Learn how to create a FaceBook app SHOW n' TELL night The ultimate PHP "date night"... Debugging and a movie Framework Bake off... Get Smart - Use Smarty! Lessons from my.barackobama.com jQuery and the Last Mile PHP IDE Bake-Off  Mediawiki in production ,[object Object]
An introduction to jQuery
The mystery of CSS and Design
Choosing an OSS license to match your business model
Developing, pricing & delivering OSS applications
How to get your OSS venture off the ground.
What is Agile Scrum?
Building the PHP-stack for the enterprise
Object-Relational Mapping (ORM) in action,[object Object]
April 7: Enhance your apps jQuery What is jQuery How to install Syntax Review of the documentation Practical uses of jQuery in your app Light-box dialogs Form validation Effects such as Animation, Fading, Easing, Etc Ajax Page blocking Progressive enhancements How to use jQuery plugins jQuery UI More...
Design an app without writing a single line of code How to think about your app and start to experiment with your ideas Prototyping tools Prototyping single pages and user interactions Creating a linkable prototype that looks almost like a working app Exporting your prototype to the web for remote testing and design feedback Paper prototyping and usability testing Designing a great user experience with interaction design
Startup/Hack Month Come to the podium and post an idea for an app that does not yet exists or could be improved. You should be willing to share this idea and not an idea that you’re not willing to share with others Ask for volunteers to help you take your idea and conceptualize it into a low fidelity prototype Work as a team onsite to produce the low fidelity prototype Present your prototype to the audience Plan with your team how best to build the app.  What technology you will use What roles each other can play How your team will work together Come back to BostonPHP (one month later) and present your progress and demo what you have so far Discuss what technology your using Discuss how you were organized What worked well, what didn’t What you would like to do next
PHP Security Cross-Site Request Forgeries Cross-Site Scripting Session Fixation Cross-Site Session Transfer Pseudo-Random Number Generator Attacks SQL Injection Email Injection Path Disclosure Path Traversal Request Value Fixation Invalid Character Encoding File Uploads Password Hashing Magic Quotes and Register Globals- Cryptography Mistakes
Tell us what you want! Learning series Open source Web development Web design Frameworks Application design … Vote now!meetup.com/bostonphp/ideas
Boston PHP : Volunteers needed Webmaster Logistics Video cameraman Topic Presenters More…
Boston PHP : Free
Learn how to develop withCakePHP Boston PHP : Michael Bourque Part I
Why a framework? <?php 	echo “why?”;  ?>
What do most WebApps do? Display HTML Static pages Dynamic pages Forms Handle form data CRUD (Create, Read, Update, Delete) Security Authentication Authorization Caching Etc…
PHP Frameworks?
Model, View, Controller Tried and true software design pattern that is: Maintainable Modular Ability to rapidly prototype  New features are easily added Separate design allows developers and designers to work simultaneously Separation allows developers to make changes in one part of the application without affecting others.
Cake PHP Anatomy
File and Classname Conventions  Filenames are underscored while classnames are CamelCased So if you have a class MyNiftyClass, then in Cake, the file should be named my_nifty_class.php
Model and Database Conventions Model classnames are singular and CamelCased. Table names corresponding to CakePHP models are plural and underscored. people tasks users Field names with two or more words are underscored like first_name Foreign keys <singular_table_name>_id
Controller Conventions Controller classnames are plural, CamelCased, and end in Controller.  PeopleController and LatestArticlesController are both examples of conventional controller names.
View Conventions View template files are named after the controller functions they display, in an underscored form.  The getReady() function of the PeopleController class will look for a view template in /app/views/people/get_ready.ctp.
Documentation : The Bakery

More Related Content

What's hot

Rapid application development for WordPress using AWF
Rapid application development for WordPress using AWFRapid application development for WordPress using AWF
Rapid application development for WordPress using AWF
Tim Plummer
 
PHP
PHPPHP
DrupalCon LA 2015 Review
DrupalCon LA 2015 ReviewDrupalCon LA 2015 Review
DrupalCon LA 2015 Review
littleMAS
 
PHP Summer Training Presentation
PHP Summer Training PresentationPHP Summer Training Presentation
PHP Summer Training Presentation
Nitesh Sharma
 
ColdFusion framework comparison
ColdFusion framework comparisonColdFusion framework comparison
ColdFusion framework comparisonVIkas Patel
 
CakePHP 3.0: Embracing the future
CakePHP 3.0: Embracing the futureCakePHP 3.0: Embracing the future
CakePHP 3.0: Embracing the future
José Lorenzo Rodríguez Urdaneta
 
Ria Development With Flex And PHP
Ria Development With Flex And PHPRia Development With Flex And PHP
Ria Development With Flex And PHP
John Coggeshall
 
PHP: Debugger, Profiler and more
PHP: Debugger, Profiler and morePHP: Debugger, Profiler and more
PHP: Debugger, Profiler and more
Võ Duy Tuấn
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
Mark Leusink
 
Mule velocity
Mule velocityMule velocity
Mule velocity
Praneethchampion
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
Mark Leusink
 
Automated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS SitesAutomated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS Sitesjoelabrahamsson
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
DrupalDay
 
EPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & TricksEPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & Tricks
EPiServer Meetup Oslo
 
Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWebDave Bouwman
 
Mastering WordPress Vol.1
Mastering WordPress Vol.1Mastering WordPress Vol.1
Mastering WordPress Vol.1
Wataru OKAMOTO
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
Robert J. Stein
 
Build your own PHP extension
Build your own PHP extensionBuild your own PHP extension
Build your own PHP extensionVõ Duy Tuấn
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCMayflower GmbH
 

What's hot (20)

Rapid application development for WordPress using AWF
Rapid application development for WordPress using AWFRapid application development for WordPress using AWF
Rapid application development for WordPress using AWF
 
PHP
PHPPHP
PHP
 
DrupalCon LA 2015 Review
DrupalCon LA 2015 ReviewDrupalCon LA 2015 Review
DrupalCon LA 2015 Review
 
PHP Summer Training Presentation
PHP Summer Training PresentationPHP Summer Training Presentation
PHP Summer Training Presentation
 
ColdFusion framework comparison
ColdFusion framework comparisonColdFusion framework comparison
ColdFusion framework comparison
 
CakePHP 3.0: Embracing the future
CakePHP 3.0: Embracing the futureCakePHP 3.0: Embracing the future
CakePHP 3.0: Embracing the future
 
Ria Development With Flex And PHP
Ria Development With Flex And PHPRia Development With Flex And PHP
Ria Development With Flex And PHP
 
PHP: Debugger, Profiler and more
PHP: Debugger, Profiler and morePHP: Debugger, Profiler and more
PHP: Debugger, Profiler and more
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
 
PHP .ppt
PHP .pptPHP .ppt
PHP .ppt
 
Mule velocity
Mule velocityMule velocity
Mule velocity
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
 
Automated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS SitesAutomated Testing Of EPiServer CMS Sites
Automated Testing Of EPiServer CMS Sites
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
 
EPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & TricksEPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & Tricks
 
Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWeb
 
Mastering WordPress Vol.1
Mastering WordPress Vol.1Mastering WordPress Vol.1
Mastering WordPress Vol.1
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Build your own PHP extension
Build your own PHP extensionBuild your own PHP extension
Build your own PHP extension
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
 

Similar to Learn How To Develop With CakePHP

Php mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjanPhp mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjan
php2ranjan
 
php training in hyderabad
php training in hyderabadphp training in hyderabad
php training in hyderabad
php2ranjan
 
PHP Courses in Chandigarh
PHP Courses in ChandigarhPHP Courses in Chandigarh
PHP Courses in Chandigarh
Daksha Academy
 
Symfony2
Symfony2Symfony2
PHP Unit-1 Introduction to PHP
PHP Unit-1 Introduction to PHPPHP Unit-1 Introduction to PHP
PHP Unit-1 Introduction to PHP
Lariya Minhaz
 
GTU MCA PHP Interview Questions And Answers for freshers
GTU MCA PHP  Interview Questions And Answers for freshersGTU MCA PHP  Interview Questions And Answers for freshers
GTU MCA PHP Interview Questions And Answers for freshers
TOPS Technologies
 
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Expbakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_ExpBakkesh K S
 
DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT
DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT
DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT
Shri Prakash Pandey
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
Evan Mullins
 
PHP/MySQL Training Course in Delhi, India by IT People
PHP/MySQL Training Course in Delhi, India by IT PeoplePHP/MySQL Training Course in Delhi, India by IT People
PHP/MySQL Training Course in Delhi, India by IT People
Abhishekve
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
Roohul Amin
 
Php Interview Questions
Php Interview QuestionsPhp Interview Questions
Php Interview Questions
UmeshSingh159
 
User Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersUser Experience Bootcamp for Developers
User Experience Bootcamp for Developers
Catherine Robson
 
Website development courses
Website development coursesWebsite development courses
Website development courses
OSK IT SOLUTION
 
Career_camp_professionals.pdf
Career_camp_professionals.pdfCareer_camp_professionals.pdf
Career_camp_professionals.pdf
PrajyotSwami2
 
MERN Stack Developer Course Syllabus
MERN Stack Developer Course Syllabus MERN Stack Developer Course Syllabus
MERN Stack Developer Course Syllabus
NxtWave
 
flask.pptx
flask.pptxflask.pptx
flask.pptx
asif290119
 
The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018
Amit Ashwini
 
Best PHP Training Course in Chandigarh
Best PHP Training  Course in  ChandigarhBest PHP Training  Course in  Chandigarh
Best PHP Training Course in Chandigarh
prasadishana669
 
Software development learning path - board infinity
Software development learning path - board infinitySoftware development learning path - board infinity
Software development learning path - board infinity
Board Infinity
 

Similar to Learn How To Develop With CakePHP (20)

Php mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjanPhp mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjan
 
php training in hyderabad
php training in hyderabadphp training in hyderabad
php training in hyderabad
 
PHP Courses in Chandigarh
PHP Courses in ChandigarhPHP Courses in Chandigarh
PHP Courses in Chandigarh
 
Symfony2
Symfony2Symfony2
Symfony2
 
PHP Unit-1 Introduction to PHP
PHP Unit-1 Introduction to PHPPHP Unit-1 Introduction to PHP
PHP Unit-1 Introduction to PHP
 
GTU MCA PHP Interview Questions And Answers for freshers
GTU MCA PHP  Interview Questions And Answers for freshersGTU MCA PHP  Interview Questions And Answers for freshers
GTU MCA PHP Interview Questions And Answers for freshers
 
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Expbakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
 
DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT
DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT
DIPLOMA IN DESIGNING AND WEBSITE DEVELOPMENT
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
PHP/MySQL Training Course in Delhi, India by IT People
PHP/MySQL Training Course in Delhi, India by IT PeoplePHP/MySQL Training Course in Delhi, India by IT People
PHP/MySQL Training Course in Delhi, India by IT People
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
 
Php Interview Questions
Php Interview QuestionsPhp Interview Questions
Php Interview Questions
 
User Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersUser Experience Bootcamp for Developers
User Experience Bootcamp for Developers
 
Website development courses
Website development coursesWebsite development courses
Website development courses
 
Career_camp_professionals.pdf
Career_camp_professionals.pdfCareer_camp_professionals.pdf
Career_camp_professionals.pdf
 
MERN Stack Developer Course Syllabus
MERN Stack Developer Course Syllabus MERN Stack Developer Course Syllabus
MERN Stack Developer Course Syllabus
 
flask.pptx
flask.pptxflask.pptx
flask.pptx
 
The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018
 
Best PHP Training Course in Chandigarh
Best PHP Training  Course in  ChandigarhBest PHP Training  Course in  Chandigarh
Best PHP Training Course in Chandigarh
 
Software development learning path - board infinity
Software development learning path - board infinitySoftware development learning path - board infinity
Software development learning path - board infinity
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 

Learn How To Develop With CakePHP

  • 1. Learn how to develop withCakePHP Boston PHP : Michael Bourque Part I Feb 17th, 2010
  • 2. Welcome to Boston PHP Started in 2002 Open styled meetings 66 Meetings so far 600 Members strong Location, Location, Location Boston, Cambridge, Norwell, Salem, Somerville, Quincy MIT, Microsoft, BU meetup.com/bostonphp
  • 3.
  • 5. The mystery of CSS and Design
  • 6. Choosing an OSS license to match your business model
  • 7. Developing, pricing & delivering OSS applications
  • 8. How to get your OSS venture off the ground.
  • 10. Building the PHP-stack for the enterprise
  • 11.
  • 12. April 7: Enhance your apps jQuery What is jQuery How to install Syntax Review of the documentation Practical uses of jQuery in your app Light-box dialogs Form validation Effects such as Animation, Fading, Easing, Etc Ajax Page blocking Progressive enhancements How to use jQuery plugins jQuery UI More...
  • 13. Design an app without writing a single line of code How to think about your app and start to experiment with your ideas Prototyping tools Prototyping single pages and user interactions Creating a linkable prototype that looks almost like a working app Exporting your prototype to the web for remote testing and design feedback Paper prototyping and usability testing Designing a great user experience with interaction design
  • 14. Startup/Hack Month Come to the podium and post an idea for an app that does not yet exists or could be improved. You should be willing to share this idea and not an idea that you’re not willing to share with others Ask for volunteers to help you take your idea and conceptualize it into a low fidelity prototype Work as a team onsite to produce the low fidelity prototype Present your prototype to the audience Plan with your team how best to build the app. What technology you will use What roles each other can play How your team will work together Come back to BostonPHP (one month later) and present your progress and demo what you have so far Discuss what technology your using Discuss how you were organized What worked well, what didn’t What you would like to do next
  • 15. PHP Security Cross-Site Request Forgeries Cross-Site Scripting Session Fixation Cross-Site Session Transfer Pseudo-Random Number Generator Attacks SQL Injection Email Injection Path Disclosure Path Traversal Request Value Fixation Invalid Character Encoding File Uploads Password Hashing Magic Quotes and Register Globals- Cryptography Mistakes
  • 16. Tell us what you want! Learning series Open source Web development Web design Frameworks Application design … Vote now!meetup.com/bostonphp/ideas
  • 17. Boston PHP : Volunteers needed Webmaster Logistics Video cameraman Topic Presenters More…
  • 18. Boston PHP : Free
  • 19. Learn how to develop withCakePHP Boston PHP : Michael Bourque Part I
  • 20. Why a framework? <?php echo “why?”; ?>
  • 21. What do most WebApps do? Display HTML Static pages Dynamic pages Forms Handle form data CRUD (Create, Read, Update, Delete) Security Authentication Authorization Caching Etc…
  • 23. Model, View, Controller Tried and true software design pattern that is: Maintainable Modular Ability to rapidly prototype New features are easily added Separate design allows developers and designers to work simultaneously Separation allows developers to make changes in one part of the application without affecting others.
  • 25. File and Classname Conventions Filenames are underscored while classnames are CamelCased So if you have a class MyNiftyClass, then in Cake, the file should be named my_nifty_class.php
  • 26. Model and Database Conventions Model classnames are singular and CamelCased. Table names corresponding to CakePHP models are plural and underscored. people tasks users Field names with two or more words are underscored like first_name Foreign keys <singular_table_name>_id
  • 27. Controller Conventions Controller classnames are plural, CamelCased, and end in Controller. PeopleController and LatestArticlesController are both examples of conventional controller names.
  • 28. View Conventions View template files are named after the controller functions they display, in an underscored form. The getReady() function of the PeopleController class will look for a view template in /app/views/people/get_ready.ctp.
  • 30. Let’s get started : Installation Basic knowledge of PHP Basic knowledge of Databases You know how to create database tables with MySQL A working development environment on your Laptop Apache 2.2.x MySQL 5.x PHP 5.3.x or 5.2.x PHPMyAdmin IDE (Any good text editor like Notepad+, TextMate, Etc) CakePHP 1.2.x http://tinyurl.com/yekjbae
  • 31. What our simple app will do Keep track of tasks Create Read Update Delete Created Modified
  • 32. Design the database Design a DB to hold your data All tables should include an ID field
  • 33. Bake an app Design a DB to hold your data All tables should include an ID field
  • 34. Add more ingredients Add more data and fields Add users Add status Add validation Add css, and change the layout Change terminology
  • 35. Some Tips Create multiple apps all coming from one CakePHP distribution Model::displayField Scaffolding Layout, and css Localization __(“string”,true);
  • 36. Thank you Special thank you to MIT BEER and Food! See you at the next meetup Contact me michael.bourque@gmail.com