CS900 - Adopting OOP in PHP 5 for Scalable LAMP Websites
Taught by Scott Haines
What we will Learn
This class is currently full. I will be doing a follow up class later this year if you would like to pre-enroll for the next session.
Prepare to get your feet real Wet - Whether you have 20 years of programming experience, have hacked large enterprise systems, know what a time-share system is, or maybe you have no idea what that last sentence was referring to and would like to, both sides are welcome here. This class is for beginners who are seeking the thrill of programming with no prior knowledge of programming, or for the programming veteran. My aim is to teach core PHP 5 the right way and cover the 30% or so of the language that is used on an everyday basis in most large web projects. Below is the week by week class overview.
Can't make it to the Class? Join the Google Group and go over the source files and assignments on your own time.
Week 1 - Tuesday April 13th, 2010. 7pm - 9:30pm
(PHP, What it is and How to Use it)
Week 1 is dedicated to the following.
- Installing PHP 5 on your Local Machine (win/mac)
- Installing Apache 2.2 on your Local Machine (win/mac)
- Installing MySQL 5.2 on your Local Machine (win/mac)
- *Short Cutting with MAMP
- Getting up and running. Connecting the dots
- What is PHP? How does it Work?
- Your first program. (Better than Hello World)...
- Intro to echo, variables and types (CONSTANTS, GLOBAL, RESERVED WORDS)
- Flip-Flopping, writing a function to convert a string into an array and then back to a string.
- Closing Notes, Assignment
Week 2 - Tuesday, April 20th, 2010. 7pm - 9:30pm
(PHP Core Functions and Concepts)
Week 2 will cover the following.
- Working with Strings
- Working with Arrays, (sorting, adding, reversing, deleting). Creating a Hash Table / Associative Array
- Working with PHP Math Methods
- Working with PHP Date Object
- Creating PHP Functions
- Assignments, Open Discussion
Week 3 - Tuesday, April 27th, 2010. 7pm - 9:30pm
(Introduction to OOP in PHP)
Week 3 will cover the following.
- Object Oriented Programming with PHP
- How to create a PHP Class
- PHP Class variables (this, and what this means)
- Private & Public variables and functions (within PHP Classes)
- Protected & Static variables / functions
- Extending Classes (Parent and Child Classes, super)
- Assignment, Open Discussion
Week 4 - Tuesday, May 4th, 2010. 7pm - 10:00pm
(OOP PHP and OOP Design Patterns)
Week 4 will cover the following.
Download Week #4 Pre-Class Source Code
- PHP Classes (cont. ) - Discussion / Questions Answered
- PHP OOP Design Patterns
- Singleton, Observer Pattern, and MVC (Model - View - Controller)
- Why MVC works well when building website's in PHP
- Assignments, Open Discussion
Week 5 - Tuesday, May 11th - (week off for 2 week assignment)
- Questions answered via Email
Week 6 - Tuesday, May 18th. 7pm - 10:00pm
(Build a Scalable Website in PHP with MySQL backend)
Week 6 will cover the following.
- Building a scalable website in PHP 5.3 and MySQL. (loosely coupled)
- Thinking about the best way to optimize your code
- Breaking down pages the right way with MVC.
- Using AJAX and PHP for remote scripting (within your site or elsewhere)
- Assignments, Open Discussion, Questions & Answers
Week 7 - Tuesday, May 25th. 7pm - 10:00pm
(Using Sessions and Authentication, Intro to PHP Security)
Week 7 will cover the following.
- (Cont.) Building a scalable website in PHP 5.3 and MySQL
- Authentication, Sessions, Cookies
- Simple Security (md5 and Sha1 encryption algorithms)
- Quick overview of Security Pitfalls (where to find answers, cont. study materials)
- Assignments, Open Discussion, Questions & Answers
Week 8 - Tuesday June 1st. 7pm - 10:00pm
(Speeding up your PHP programs)
Week 8 will cover the following.
- Simple tricks and tips for speeding up websites (caching code and images)
- Using optimization tools.
- Great Browser Plugin - ySlow - and how to use it.
- Discussion on distributed systems (SOA - Service Oriented Architectures)
- Assignments, Open Discussions, Questions & Answers
Week 9 - Tuesday, June 8th. 7pm - 10:00pm
(Fine Tuning your website, Advanced PHP Functions, Using 3rd Party Classes, Putting your site online)
Week 9 will cover the following.
- Overview of the PHP OOP Blog
- End of Class Wrap Up, Open Discussion
Things to think about or look at before the class begins
- Get to Know PHP 5.3
- Your new Best Friend -> PHP Manual
- Download PHP 5.3
- Get PHP 5.3 Source (download, cd to download, ./configure --prefix=/usr/local/php, make, make install)Download from PHP.Net Mirror
- Get PHP 5.3 Windows Binaries Pick PHP Mirror for Windows
- Fall in love with MySQL
- Current Stable Version: MySQL Community Server 5.1.45
- Get MySQL -> MySQL downloads Page
- Make sure you download a version that works with your Laptop or Desktop. Any Mac running snow leopard needs the x86_64 for 10.6, alternatively you can download the universal binary and just ./configure and it will find the links it needs to make your system work. Ideally a threaded 64bit machine will be used, but since we will not be working with huge datasets 32 bit systems will do just fine.
- I want Apache. Do I have it? How can I get it?
- If you are running an Mac, you have apache installed. If your on a windows machine... Apache for Windows, you will need to get Apache running as an alternative to IIS. Win32 Binary Install Directory for Apache
- I'm in a rush. Just get me up and running quick. I don't have time for binaries
- I'm a Mac. One Click LAMP Stack -> MAMP
- I'm a PC.
- XAMPP (real good)
- WAMP Server (not tested)
- I want to edit PHP sites and Files quickly. Give me Tools
- PHP Development Tools (Eclipse) Eclipse PHP Dev Tools
- ZEND STUDIO PHP IDE from authors of PHP
- NetBeans IDE Netbeans IDE
- Great Browser Tools
- Firebug Download Firebug for Firefox
- ySlow Download ySlow for Firefox
- Web Developer ToolbarWeb Developer Toolbar
Sign Up Today. This class is complementary and free of charge.
© 2013 Newfront Creative - San Jose | San Francisco | Bay Area Web Design | 408.705.7833 |TEAM | CLIENTS | WEB PROJECTS | CONTACT