hold

hold

loading...

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.

Download Week #1 Resources

  1. Installing PHP 5 on your Local Machine (win/mac)
  2. Installing Apache 2.2 on your Local Machine (win/mac)
  3. Installing MySQL 5.2 on your Local Machine (win/mac)
  4. *Short Cutting with MAMP
  5. Getting up and running. Connecting the dots
  6. What is PHP? How does it Work?
  7. Your first program. (Better than Hello World)...
  8. Intro to echo, variables and types (CONSTANTS, GLOBAL, RESERVED WORDS)
  9. Flip-Flopping, writing a function to convert a string into an array and then back to a string.
  10. Closing Notes, Assignment

Week 2 - Tuesday, April 20th, 2010. 7pm - 9:30pm
(PHP Core Functions and Concepts)
Week 2 will cover the following.

Download Week #2 Resources

  1. Working with Strings
  2. Working with Arrays, (sorting, adding, reversing, deleting). Creating a Hash Table / Associative Array
  3. Working with PHP Math Methods
  4. Working with PHP Date Object
  5. Creating PHP Functions
  6. Assignments, Open Discussion

Week 3 - Tuesday, April 27th, 2010. 7pm - 9:30pm
(Introduction to OOP in PHP)
Week 3 will cover the following.

Download Week #3 Resources

  1. Object Oriented Programming with PHP
  2. How to create a PHP Class
  3. PHP Class variables (this, and what this means)
  4. Private & Public variables and functions (within PHP Classes)
  5. Protected & Static variables / functions
  6. Extending Classes (Parent and Child Classes, super)
  7. 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

MySQL Users SQL File

  1. PHP Classes (cont. ) - Discussion / Questions Answered
  2. PHP OOP Design Patterns
  3. Singleton, Observer Pattern, and MVC (Model - View - Controller)
  4. Why MVC works well when building website's in PHP
  5. Assignments, Open Discussion

Week 5 - Tuesday, May 11th - (week off for 2 week assignment)
  1. 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.

Week Six Pre-Class

Week Six Post-Class Files

  1. Building a scalable website in PHP 5.3 and MySQL. (loosely coupled)
  2. Thinking about the best way to optimize your code
  3. Breaking down pages the right way with MVC.
  4. Using AJAX and PHP for remote scripting (within your site or elsewhere)
  5. 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.
  1. (Cont.) Building a scalable website in PHP 5.3 and MySQL
  2. Authentication, Sessions, Cookies
  3. Simple Security (md5 and Sha1 encryption algorithms)
  4. Quick overview of Security Pitfalls (where to find answers, cont. study materials)
  5. Assignments, Open Discussion, Questions & Answers

Week 8 - Tuesday June 1st. 7pm - 10:00pm
(Speeding up your PHP programs)
Week 8 will cover the following.
  1. Simple tricks and tips for speeding up websites (caching code and images)
  2. Using optimization tools.
  3. Great Browser Plugin - ySlow - and how to use it.
  4. Discussion on distributed systems (SOA - Service Oriented Architectures)
  5. 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.

Download ALL Resources

  1. Overview of the PHP OOP Blog
  2. 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
  1. I'm a Mac. One Click LAMP Stack -> MAMP
  2. I'm a PC.
  3. XAMPP (real good)
  4. WAMP Server (not tested)
I want to edit PHP sites and Files quickly. Give me Tools
  1. PHP Development Tools (Eclipse) Eclipse PHP Dev Tools
  2. ZEND STUDIO PHP IDE from authors of PHP
  3. NetBeans IDE Netbeans IDE
Great Browser Tools
  1. Firebug Download Firebug for Firefox
  2. ySlow Download ySlow for Firefox
  3. Web Developer ToolbarWeb Developer Toolbar

Sign Up Today. This class is complementary and free of charge.

Follow newfront on Twitter © 2013 Newfront Creative - San Jose | San Francisco | Bay Area Web Design | 408.705.7833 |TEAM | CLIENTS | WEB PROJECTS | CONTACT