This class is meant to render schedule time tables graphics from definitions in XML format.
The schedule definitions specify the days that will appear in one axis of the time table and the hours of the day that appear in the other axis.
The schedule include the definitions of the blocks of time that are allocated including the start time, duration of each period, and the allocated event or class.
The class generate an automatic layout for the allocated time blocks and generates the time table as an PNG image using presentation styles also defined in the schedule definition XML file.
The class comes with two examples: one is a real schedule (mine) and the other is like a tutorial, showing how to configure almost every supported feature.
Package of classes that provide DBMS independent access and management of databases.
Currently it features:
o BSD style license.
o Dual API call forms:
* Direct driver class object calls
* Global function calls
o Set of functions that call the selected DBMS driver objects functions supporting when possible:
* Database connection setup with support for connection strings
* Operation error handling
* Query constant data conversion
* Direct queries
* Prepared queries
* Query result rows random access
* Retrieve a limit range of rows of a SELECT query.
* Nested transactions
* Large object fields (BLOBs - storing files in the database)
* Database object creation (tables, indexes, sequences)
* DBMS driver supported feature query
o DBMS Drivers classes that support the most important databases being used on the Web.
o Driver conformance test suite to verify if the driver classes are working and features are properly implemented.
o A parser class that is able to interpret DBMS independent database schemas file defined in a custom XML format supporting the following types of objects:
* Tables with fields of the types: text, integer, boolean, date, time, timestamp, decimal, float, character large objects (CLOBs) and binary large objects (BLOBs), auto-increment.
* Primary keys
* Indexes
* Auto incremented sequences
o A manager class that is able to:
* Install a new database from a schema description interpreted by the parser class.
* Ability to compare a previously installed schema with a new schema and only install the changes without affecting data stored after the previous installation or update.
* Dump database structure and contents in the same XML format handled by the parser allowing for moving data between databases of different DBMS vendors.
* Reverse engineer schemas of already installed databases
This package can be used to implement Aspect Oriented Programming (AOP) in PHP in a transparent way. This means that you can add or remove aspects to a class without changing its code.
The class provides an alternative for the PHP require() function that includes a PHP class and transparently modifies it to insert aspect advice code in the pointcuts defined in the class code that is going to have new orthogonal aspects added.
Also, it can automatically include advice code in automatic pointcuts, like at the begin and end of each method.
The pointcuts are marked in the class modify as simple PHP comments, so the class behavior is not affect when AOP support is not being used.
The automatic pointcuts do not need to be marked. This approach follows exactly the AOP theory, without need to touch a single line of 3rd-party code, for example.
The class is compiled and a new class file is generated with the code of the new aspects. The compiled class version is cached to avoid the recompilation overhead next time the same class is include using the same aspects.
The technique checks for changes in one of each XML file, or in original class file or even if new XML files were added/removed.
The aspects are defined in a separate XML file that includes the definition of the PHP advice code and the pointcuts where the code should inserted.
Optionally, the advice code can be compacted into a single line before it is inserted in the pointcuts, so the original class line numbers are preserved.
Another interesting option is to define the compiled files directory.
This package requires PHP 4.3.0 as it uses the PHP tokenizer extension. It does not use any external PHP extension.
RSPA stands for Really Simple PHP and AJAX. It is a framework with components for processing browser events on the server using AJAX to provide interaction between the browser and the server without page reloading.
It can be used for calling PHP class functions from the browser side. It provides means to manipulate JavaScript objects on the browser page.
It can be used to manipulate common HTML page elements. It also provides custom page elements such as labels and auto-complete inputs.