SlideShare ist ein Scribd-Unternehmen logo
1 von 10
ïƒŹ
How to use open source PHP to build a website and contribute/learn.
By : Joshua Copeland Twitter : @PsyCodeDotOrg
Building a site for the user group
ïƒŹ This is a group project! Lets build something cool overtime.
ïƒŹ The code will always remain open source and ready for anyone to
send pull requests to add features or fix bugs or security holes.
ïƒŹ A basic roadmap of features will be kept on the github wiki.
ïƒŹ Starting simple, from aenglander/starter-app github project.
ïƒŹ I forked his repo and soon will list it under the github lv-php organization.
ïƒŹ We encourage other speakers to incorporate their topic of discussion into
the project. Ex. Symfony Components, ORMs, Security, JS/JQuery, Sockets, etc.
ïƒŹ Video links to talks, slides, docs, etc. will be held centrally in this project if
the speaker used this project for their topics usage example.
How did you create the website?
ïƒŹ Bought the domain name lvphp.org
ïƒŹ Created the hosting account to house the new site
ïƒŹ Pointed the DNS to my main webserver
ïƒŹ Waited for DNS to propagate
ïƒŹ Loaded lvphp.org in my browser
ïƒŹ This showed my directory index listed.
ïƒŹ Blank or not found error from your browser usually means DNS
isn’t fully propagated.
You may want to edit your hosts file on your machine and hard code
the IP of your hosting account to start seeing your site immediately.
The domain and host is setup, now what?
We now officially have a public facing website ready for PHP code.
Now that our site is live, you can go in many directions. If you’re new
to coding and just want a blog, you might want to try Wordpress. If
you have experience with PHP and want to build a custom site with a
robust framework, you may want to try Symfony, Laravel, Yii, Zend2,
Silex, or CakePHP. Research First, examples, etc.
If you’re new to PHP but want to build something simple without the
use of a MVC framework then fork our github example or look for an
example close to what you want to build and start from there.
https://github.com/aenglander/starter-app
Using the PHP starter-app code for our site
ïƒŹ Sign up for a github account
ïƒŹ Navigate to the project
ïƒŹ Click the fork button
ïƒŹ On your fork page, copy the “HTTPS clone url”
ïƒŹ Install git on your development machine
ïƒŹ Run “git clone https://github.com/copiedForkUrl”
ïƒŹ A project folder should now exist with the starter code
Now start coding and debugging!
ïƒŹ Spoiler alert : most of your time programming will be spent
debugging so learn how to inspect variables and read code.
ïƒŹ Xdebug (Use IDEs like PHPStorm or NetBeans to step through code)
ïƒŹ Use var_dump, print_r, echo, or implementing __toString on objects, to
help dump info to the screen or log to a file via file_put_contents
ïƒŹ PHP.net is your friend, read documentation on what the function does
and pitfalls to watch out for because PHP (as well as other loosely typed
languages) are riddled with things you must know otherwise assuming
creates bugs. Ex: What does empty(“0”) return? True or False?
ïƒŹ http://php.net/manual/en/types.comparisons.php
ïƒŹ When you have issues with your code, now at least you can try figure
out what is going and if still stumped, ask the right questions.
Development Environment
ïƒŹ I highly recommend using a virtual machine for your
development boxes so things are reproducible without having
to take your whole day reconfiguring stuff on your native box.
ïƒŹ Use vagrant/puppet/virutalbox to stand up a VM
ïƒŹ Use VirtualBox/VMWare/HyperVisor to just standup an ISO (image) of your
development machine with all the extensions pre-installed.
ïƒŹ (AKA. Create an image after you configure everything)
ïƒŹ You can use your native machine if your system is slow (with
VM on) but not recommended. XAMPP might work.
ïƒŹ Check out my other talk on L.A.M.P. setups for more info on this topic.
Production Environment
ïƒŹ Use capistrano (+ webistrano), chef, phing (+ phingistrano),
phpUnderConrtol, git, or just some hand written scripts for deploying your
code to the remote server.
ïƒŹ If the code blows up on live, think of how you’re going to rollback the code.
These tools aid in that process, may not be as easy when you have
handwritten scripts or if using git to push to it.
ïƒŹ Do not commit your production credentials to your VCS! You should have
some settings file with development credentials committed that you can
overwrite on the production server once deployed, you can put those
settings in a separate private repo.
ïƒŹ Use the same puppet files that you use in development on your server to
automatically provision (setup) your server with all the dependencies the
server needs installed. This gives you the peace of mind that if it works on
your box, it’s going work on the live one.
ïƒŹ In the beginning we will be just using ftp to push the code live. Later it will
be much more powerful to use ssh so you can run bash commands also.
The Programmer’s Development Cycle
Research
Code
Test
Debug
One goal was to create a
topic picker and not
write SQL to allow for
other DBs in the future. I
also wanted to build a
voting system on those
topics picked. I took the
starter-app and ran
‘composer init’ to add a
dependency on doctrine
ORM for models and the
symfony http foundation
for the request and
response object.
Roadmap
Meetup.com API
Integration
Show Meetup
Dates
Show Message
Board
User Login
(UserBundle?)
E-mail verification
Manage Session
Contribute as
Author User
Blog/Articles/Links
UI (Bootstrap?)

Weitere Àhnliche Inhalte

Was ist angesagt?

Volunteering atyouseeforit services
Volunteering atyouseeforit servicesVolunteering atyouseeforit services
Volunteering atyouseeforit services
YouSee
 
Testing Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade WorkflowTesting Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade Workflow
Pantheon
 
One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
Mayflower GmbH
 
Alternatives to Proprietary Software
Alternatives to Proprietary SoftwareAlternatives to Proprietary Software
Alternatives to Proprietary Software
techlug
 

Was ist angesagt? (20)

Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 
Automate Yo' Self
Automate Yo' SelfAutomate Yo' Self
Automate Yo' Self
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHPComposer - The missing package manager for PHP
Composer - The missing package manager for PHP
 
Volunteering atyouseeforit services
Volunteering atyouseeforit servicesVolunteering atyouseeforit services
Volunteering atyouseeforit services
 
Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)
 
Testing Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade WorkflowTesting Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade Workflow
 
One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
 
Django Seminar 08/17/2013
Django Seminar 08/17/2013Django Seminar 08/17/2013
Django Seminar 08/17/2013
 
Python setup for dummies
Python setup for dummiesPython setup for dummies
Python setup for dummies
 
PHP on Google App Engine
PHP on Google App EnginePHP on Google App Engine
PHP on Google App Engine
 
Lezione 03 Introduzione a react
Lezione 03   Introduzione a reactLezione 03   Introduzione a react
Lezione 03 Introduzione a react
 
Drupal Performance
Drupal Performance Drupal Performance
Drupal Performance
 
Bending the odoo learning curve - Odoo Experience 2015
Bending the odoo learning curve - Odoo Experience 2015Bending the odoo learning curve - Odoo Experience 2015
Bending the odoo learning curve - Odoo Experience 2015
 
Make an Instant Website with Webhooks
Make an Instant Website with WebhooksMake an Instant Website with Webhooks
Make an Instant Website with Webhooks
 
LAP II - Lezione 01 Introduzione al corso
LAP II - Lezione 01   Introduzione al corsoLAP II - Lezione 01   Introduzione al corso
LAP II - Lezione 01 Introduzione al corso
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
 
Alternatives to Proprietary Software
Alternatives to Proprietary SoftwareAlternatives to Proprietary Software
Alternatives to Proprietary Software
 
Frontend testing with Codeception
Frontend testing with CodeceptionFrontend testing with Codeception
Frontend testing with Codeception
 
Introduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap BuildIntroduction to PhoneGap and PhoneGap Build
Introduction to PhoneGap and PhoneGap Build
 

Ähnlich wie LVPHP.org

Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWest
Joshua Warren
 

Ähnlich wie LVPHP.org (20)

Create Your Own Framework by Fabien Potencier
Create Your Own Framework by Fabien PotencierCreate Your Own Framework by Fabien Potencier
Create Your Own Framework by Fabien Potencier
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEM
 
MVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web ApplicationsMVC Frameworks for building PHP Web Applications
MVC Frameworks for building PHP Web Applications
 
Flask
FlaskFlask
Flask
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Php Development Stack
Php Development StackPhp Development Stack
Php Development Stack
 
Php Development Stack
Php Development StackPhp Development Stack
Php Development Stack
 
Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
 
Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWest
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Building Eclipse Plugins with Tycho
Building Eclipse Plugins with TychoBuilding Eclipse Plugins with Tycho
Building Eclipse Plugins with Tycho
 
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on HerokuRapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
 
PHP: Hypertext Preprocessor Introduction
PHP: Hypertext Preprocessor IntroductionPHP: Hypertext Preprocessor Introduction
PHP: Hypertext Preprocessor Introduction
 
Pantheon basics
Pantheon basicsPantheon basics
Pantheon basics
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
Untangling4
Untangling4Untangling4
Untangling4
 

Mehr von Joshua Copeland (7)

Web scraping 101 with goutte
Web scraping 101 with goutteWeb scraping 101 with goutte
Web scraping 101 with goutte
 
WooCommerce
WooCommerceWooCommerce
WooCommerce
 
Universal Windows Platform Overview
Universal Windows Platform OverviewUniversal Windows Platform Overview
Universal Windows Platform Overview
 
PHP Rocketeer
PHP RocketeerPHP Rocketeer
PHP Rocketeer
 
PHP 7
PHP 7PHP 7
PHP 7
 
Blackfire
BlackfireBlackfire
Blackfire
 
Lumen
LumenLumen
Lumen
 

KĂŒrzlich hochgeladen

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

KĂŒrzlich hochgeladen (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžcall girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžcall girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 

LVPHP.org

  • 1. ïƒŹ How to use open source PHP to build a website and contribute/learn. By : Joshua Copeland Twitter : @PsyCodeDotOrg
  • 2. Building a site for the user group ïƒŹ This is a group project! Lets build something cool overtime. ïƒŹ The code will always remain open source and ready for anyone to send pull requests to add features or fix bugs or security holes. ïƒŹ A basic roadmap of features will be kept on the github wiki. ïƒŹ Starting simple, from aenglander/starter-app github project. ïƒŹ I forked his repo and soon will list it under the github lv-php organization. ïƒŹ We encourage other speakers to incorporate their topic of discussion into the project. Ex. Symfony Components, ORMs, Security, JS/JQuery, Sockets, etc. ïƒŹ Video links to talks, slides, docs, etc. will be held centrally in this project if the speaker used this project for their topics usage example.
  • 3. How did you create the website? ïƒŹ Bought the domain name lvphp.org ïƒŹ Created the hosting account to house the new site ïƒŹ Pointed the DNS to my main webserver ïƒŹ Waited for DNS to propagate ïƒŹ Loaded lvphp.org in my browser ïƒŹ This showed my directory index listed. ïƒŹ Blank or not found error from your browser usually means DNS isn’t fully propagated. You may want to edit your hosts file on your machine and hard code the IP of your hosting account to start seeing your site immediately.
  • 4. The domain and host is setup, now what? We now officially have a public facing website ready for PHP code. Now that our site is live, you can go in many directions. If you’re new to coding and just want a blog, you might want to try Wordpress. If you have experience with PHP and want to build a custom site with a robust framework, you may want to try Symfony, Laravel, Yii, Zend2, Silex, or CakePHP. Research First, examples, etc. If you’re new to PHP but want to build something simple without the use of a MVC framework then fork our github example or look for an example close to what you want to build and start from there. https://github.com/aenglander/starter-app
  • 5. Using the PHP starter-app code for our site ïƒŹ Sign up for a github account ïƒŹ Navigate to the project ïƒŹ Click the fork button ïƒŹ On your fork page, copy the “HTTPS clone url” ïƒŹ Install git on your development machine ïƒŹ Run “git clone https://github.com/copiedForkUrl” ïƒŹ A project folder should now exist with the starter code
  • 6. Now start coding and debugging! ïƒŹ Spoiler alert : most of your time programming will be spent debugging so learn how to inspect variables and read code. ïƒŹ Xdebug (Use IDEs like PHPStorm or NetBeans to step through code) ïƒŹ Use var_dump, print_r, echo, or implementing __toString on objects, to help dump info to the screen or log to a file via file_put_contents ïƒŹ PHP.net is your friend, read documentation on what the function does and pitfalls to watch out for because PHP (as well as other loosely typed languages) are riddled with things you must know otherwise assuming creates bugs. Ex: What does empty(“0”) return? True or False? ïƒŹ http://php.net/manual/en/types.comparisons.php ïƒŹ When you have issues with your code, now at least you can try figure out what is going and if still stumped, ask the right questions.
  • 7. Development Environment ïƒŹ I highly recommend using a virtual machine for your development boxes so things are reproducible without having to take your whole day reconfiguring stuff on your native box. ïƒŹ Use vagrant/puppet/virutalbox to stand up a VM ïƒŹ Use VirtualBox/VMWare/HyperVisor to just standup an ISO (image) of your development machine with all the extensions pre-installed. ïƒŹ (AKA. Create an image after you configure everything) ïƒŹ You can use your native machine if your system is slow (with VM on) but not recommended. XAMPP might work. ïƒŹ Check out my other talk on L.A.M.P. setups for more info on this topic.
  • 8. Production Environment ïƒŹ Use capistrano (+ webistrano), chef, phing (+ phingistrano), phpUnderConrtol, git, or just some hand written scripts for deploying your code to the remote server. ïƒŹ If the code blows up on live, think of how you’re going to rollback the code. These tools aid in that process, may not be as easy when you have handwritten scripts or if using git to push to it. ïƒŹ Do not commit your production credentials to your VCS! You should have some settings file with development credentials committed that you can overwrite on the production server once deployed, you can put those settings in a separate private repo. ïƒŹ Use the same puppet files that you use in development on your server to automatically provision (setup) your server with all the dependencies the server needs installed. This gives you the peace of mind that if it works on your box, it’s going work on the live one. ïƒŹ In the beginning we will be just using ftp to push the code live. Later it will be much more powerful to use ssh so you can run bash commands also.
  • 9. The Programmer’s Development Cycle Research Code Test Debug One goal was to create a topic picker and not write SQL to allow for other DBs in the future. I also wanted to build a voting system on those topics picked. I took the starter-app and ran ‘composer init’ to add a dependency on doctrine ORM for models and the symfony http foundation for the request and response object.
  • 10. Roadmap Meetup.com API Integration Show Meetup Dates Show Message Board User Login (UserBundle?) E-mail verification Manage Session Contribute as Author User Blog/Articles/Links UI (Bootstrap?)