Learn PhalconPHP Framework
3.5 (102 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
714 students enrolled

Learn PhalconPHP Framework

Learn the Most Advanced & Fastest PHP Framework & become a Master Developer.
3.5 (102 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
714 students enrolled
Created by Jesse Boyer
Last updated 3/2014
English [Auto-generated]
Current price: $11.99 Original price: $149.99 Discount: 92% off
2 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6 hours on-demand video
  • 16 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Learn how to start a PhalconPHP application from scratch
  • Learn the inner workings of Controllers and Views

  • Learn how to manage your Database with Models & the ORM

  • Learn how to use the Dependency Injection Service
  • Learn how to use the VOLT Template Library
  • Create a PhalconPHP Project
Course content
Expand all 39 lectures 05:49:52
+ Introduction and Installation
3 lectures 18:01

PhalconPHP is the fastest full-scale framework written in C for the Zend Engine.

Preview 02:07

This demonstrates how to properly install Phalcon. It's similar to almost any MVC besides the extension adding. I'll show you how to create a Virtual Host to protect non-public files.

Preview 08:20

How to Easily compile Phalcon inside Linux

Preview 07:34
Installation Quiz
4 questions
+ Basic Start
4 lectures 33:22

We will create a directory structure like the Phalcon Documents use to stay consistent with them. Yet the option is still up to you to lay it out anyway you choose.

I will also be using GIT for managing this project and I encourage you to if you know how to use it. The purpose of me bringing it up is so that you are not confused about any .git folders and files.

Preview 07:43

The Bootstrap is the entry point for the application. This is where you define autoloading, view folders, and return data from the application.

The DependencyInjector is like a global registry using closures, it will become very useful in the future.

Although a CLI application can generate this for us, it's important you understand what's going on.

Create the Bootstrap
8 questions

Learn a few core items that are important for the Controller.

- With the Dispatcher ($this->dispatch->forward) you can call another URL action (as if it were a function).

- With the initialize() function, you can use it for protecting your Routes.

Cliff Notes:

- initialize() is only called When a route is successfully loaded (beforeExecuteRoute)

Understand Controllers

Learn how to render your views from controllers, and how to take advantage of layouts.

Important: If create /layout/login.phtml Phalcon will autoload for the login controller, so you do not need to call setTemplateAfter('login') or it will load twice.

View Render Levels


Integrating Views
Controller Quiz
8 questions
+ SQL, Models, and the ORM
7 lectures 45:05

Follow along to create our database schema if you like. I will be using HeidiSQL (free), you may use your favorite SQL client.

Preview 04:41

Place our database connection into the application using the Dependency Injector.

Update the Bootstrap for Database Usage

Learn how to Create, Update, and Select data.

Model Setup & Create, Update, & Selecting Data.

Learn how to delete data permanently and soft deleting.

Models: Deleting Data
Model CRUD Quiz
5 questions

Events can be used to add repetitive tasks to your query, validate data, or call out other methods.

Additionally there are these model methods: beforeDelete() and afterDelete();

Models Events

Learn how to associate your models with other tables. We will use the Model::hasMany() and Model::belongsTo().

There are two other features I won't be convering (hasOne and hasManyToMany), you can look those up in the docs (see link).

Table/Model Relationships

Easily add to another table with associated records with a few lines of code.

I demonstrate the save() feature, but you can also use this for updating and deleting.

Model Saving Related Records
Model Relationship Quiz
6 questions
+ Flexible Features
6 lectures 42:36

APC is an "Alternative PHP Cache" library. This is how you install it on Debian/Ubuntu systems using PEAR.

(Optional) Install APC (Linux) - For caching MetaData

Here is how you install APC for usage on Windows inside of WAMP or XAMPP.

MediaFire Link: For 64-Bit PHP (php_apc-3.1.13-5.4-VC9-x64.zip)

PHP.net Link: For 32-Bit PHP (php_apc-3.1.10-5.4-vc9-x86.zip)

Note: PHP Suggests using code compiled with VC9 over VC6 for increased performance.

(Optional) Install APC (WAMP) - For caching MetaData

MetaData is a description of your SQL table to map it to your Model file in the ORM. It's going to save your server load time by caching your table meta-data so you do not waste query(s) on every model instantiation.

Caching Models MetaData

Here's the standard Session usage in a nice wrapper.

Preview 05:51
Session Quiz
6 questions

How to use the request environment.

Request Environment (GET/POST)

There are a lot of features to the routes. I will show the basics

and the two main options you might want to use.

Custom Routing
Route Quiz
5 questions
+ Assets & Volt Templating
3 lectures 20:26

We will use the Assets manager briefly for loading Js or CSS into our views. Ill also show you the collections, and there are further options for minification you can find in the documents.

We'll also create a BaseController to make our project easier to manage with shared functionality when need-be.

Using the Assets Manager & Setting up a BaseController

The Volt template engine is quite snazzy and similar to Mustache or Jinja Templating. We just load up the one liner into our view injection and we are good to go.

Enable the Volt Template Engine

The Volt Templating engine is extremely easy to use. I'll show you some basics as we rewrite our user view into Volt.

Preview 06:58
Volt Quiz
8 questions
+ Build an App by Example (Part 1) [Level: Difficult]
4 lectures 01:17:39

We begin our application titled "Fireball". We will do a major facelift and clean up a lot of the learning code, and setup a base template system while integrating Bootstrap 3. You may skip this video if you like and just download the code and continue, however, I recommend watching at the very least so you pickup some tricks.

Application Overhaul

We touch base to see if you followed along :)

Application Overhaul Quiz
6 questions

We begin setting up an ACL System (Access Control List). For Guests, Users, and Admins. there is a lot of code we type to set it up, so I have provided the files in case you make a mistake.

ACL Setup (Part 1)

Here we finish adding permissions to our ACL with our different groups. We run into a few kinks in the road, please just watch to get a few ideas on debugging. There is a lot of code to type so I've provided the files incase you have any problems.

ACL Setup (Part 2)

Learn how to flash data when a user isn't allowed somewhere. Then refactor some of our namespaces for cleanliness.

Flashing Messages & Cleaning up the Namespaces
+ Building our App (Part 2)
4 lectures 57:57

We begin to tie in the login form with the ACL and a user dashboard page.

Create a Login Area tied into the ACL (Part 1)

We finish to tie in the login form with the ACL and a user dashboard page.

Create a Login Area tied into the ACL (Part 2)

Use the security class for CSRF and Encrpyting Passwords. You need OpenSSL Enabled.

Securing Passwords and CSRF

Cram Session to build out the registration in one sitting!

Setup Registration
+ Advanced Topics
3 lectures 26:40

A handy class to pass configurations around your system.

Preview 10:06

Custom components are an elegant way to make re-usable code with access to all dependency inejected object.

Custom Components

Using Composer with Phalcon (Or any other system for that matter) is extremely simple, and it manages dependencies nicely!

Using Composer in Phalcon
+ Phalcon Development Tools & Building a Project "Jumble"
4 lectures 25:54

Setup a Vagrant Box with: PHP 5.5, MySQL 5.5, Redis Server, Phalcon, Phalcon Dev Tools, Git and Composer to work along with me.

Phalcon Vagrant Setup (Any OS)

We point Apache to our own folder to work in.

Please see the attached instructions if you get stuck.

Point Apache and Generate a Project

Migrations are used to update your database from local to production on the fly after making changes without having to do everything by hand or touch SQL code.

Database & Migrations

Scaffolding creates a quick CRUD interface based on our database tables. It's a time saver that you can customize easily.

Scaffolding based on a DB Table
+ Conclusion
1 lecture 02:12

Summary of what youve learned!

Summary of What You've Learned
  • Linux or Windows using LAMP / WAMP / XXAMP (Sorry, No Mac Support)
  • Some CLI/Terminal Knowledge
  • Text Editor (Recommended: Sublime Text)

In this course I will teach you from the ground floor how to build an application in PHP's fastest full-scale framework; PhalconPHP. Controllers, Views, Routes, Templates, Models/Relationships/ORM; All covered.

Each section is broken down for you to follow along with and write code as I do. After learning as you go, we'll create a project based on what you've learned.

We will make changes to the Bootstrap through each step in this follow-along series so you know exactly what's going on. This course is geared towards the medium to advanced skilled developer who have a well rounded knowledge of PHP and Object Oriented Design.

This course should take you around 2-3 weeks to complete, but you may need to come back a few times in order to absorb all the material. You should consider taking this course if you are interested in advanced development and bleeding-edge technology that will dominate PHP.

Who this course is for:
  • Proficient PHP Knowledge
  • Some MVC Knowledge