AuthenticationPHP uses an authentication mechanism that is more flexible than basic Let’s assume that our user just arrived, and is not yet authenticated. If the user does not have a JavaScript capable browser, then Session ManagementAuthentication ties in very closely with session management. Once the user |
Aside: PHP and Object Oriented Programming
PHPLIB uses PHP’s OOP feature extensively. This may be the first time
you’ve seen it in use, so it’s going to help a lot if you have an idea of what it all means. The first step is to not really think of it as object oriented. Rather, it’s a way to group together data and functions for convenient access. It does not follow many OO conventions, and it is not truly object oriented. With that said, let’s look at the database class to see what it means.
This line creates a new database object. Think of it as initializing all
the functions in MyDBClass so that you can use them. $db is then a link tothis database object. In a real OO language, creating this object would simply allocate memory for the data and functions. With PHP, what it does is essentially set up the object (in this case, basically set up the database connection, and select the database). To do anything useful with this object, you evoke methods on it. Methods are simply functions that manipulate an object’s data. For example,
means to evoke the function query on the database object $db. The query
method takes the string you pass it, and uses the data in the database object to execute that query. The -> symbol may confuse you a bit. In C, -> means to access the data of a pointer to a structure. In PHP, it means that the method on the right is called on the object on the left. Here, query is just one of the functions in the database class. All the other functions in that class can be accessed in the same way.
Now, when you set up your local.inc file, you do so by extending classes.
Extending is an OO word for adding functionality to things. When you extend a class, all the functions and data in the class you are extending (called the super class) is available to the extending class (called the sub class). Your subclass can add functionality to the superclass, and it can also overwrite data and methods in the superclass. Let’s take the database example. Here is a subclass of a database class: class MyDBClass extends DB_Sql {
Here we are creating a class called MyDBClass. This class can do everything
that the database class can do. However, it has replaced some of the data of the database class with some of it’s own. If you look in DB_Sql, you’ll see the variables above are empty. The subclass provides these values, and it is the subclass you will use to create your database objects. You can call all the methods of DB_Sql on MyDBClass, because it is merely an extension. Think of it as MyDBClass IS a DB_Sql object with added functionality and/or data. |
Session Management and Authentication with PHPLIB Page 2
Now let’s take a look at what the features do.