Put some MVC in your PHP

Trial by separation

Secure remote control for conventional and virtual desktops

Create a "controllers" directory and a "views" directory in the Apache web server document root htdocs by default. We shall create the view scripts in the "views" directory and controllers in the "controllers" directory. Create action controller, "database", for the business logic of the MVC application. Create a DatabaseController class that extends the Zend_Controller_Action class and add action functions insertAction, selectAction, updateAction, and deleteAction to the class.

The controller actions will be invoked from view scripts, which provide a user interface to specify the table row to be added, selected, updated and deleted. Create the view scripts insertView.php, selectView.php, updateView.php, and deleteView.php in the "views" directory. The view scripts and other resource files are available in a zipped resources file here.

Add a row

First, we shall add a row to the Catalog table. In the insertView.php add a form with input fields for the table row to be added. The "action" attribute of the <form> element specifies "database/insert", which corresponds to the "insert" action of the "database" controller. In the DatabaseController insertAction function create a Zend_Db adapter, which represents a connection with Oracle database, using the Zend_Db factory.

$params = array ('host'=>'localhost','username'=>'OE','password'=>'pw','dbname'=>'orcl');
$db=Zend_Db::factory('Oracle', $params); 

The first argument specifies the base name for the adapter class - "Oracle" for the Oracle database. The second argument specifies the adapter parameters. Retrieve the input fields specified in the insertView.php using $_POST['field'] and create an associative array, $row, for the columns that constitute a row in the database table. Specify the database table to be updated and insert the new row using the insert() method of the Zend_Db adapter class.

$table = 'Catalog';
$rowsAffected = $db->insert($table, $row); 

The first argument of the insert() method is the database table and the second argument is the associative array that maps column names to values. Invoke the insertView.php with URL http://localhost/views/insertView.php. To add a row specify the column values and click on create.

adding a row

Adding a row

Retrieve a row

Next, retrieve a row from the catalog table using the Zend Framework. Create a Zend_Db_Select object from the Zend_Db adapter object using the select() method.

$select = $db->select();

The Zend_Db_Select object is used to construct a SQL SELECT statement. Specify the FROM clause using the from() method and the WHERE clause using the where() method.

$select->from('Catalog', '*');
$select->where('ID = ?', $_POST['id']); 

Create the SQL query string from the Zend_Db_Select object using the _toString() method. Run the SQL query using the fetchAll() method and query results will be returned as a row set.

$sql = $select->__toString();
$rowset = $db->fetchAll($sql); 

Create a Zend_View object to render a view script and specify the directory containing the view scripts. The Zend_View class represents the "view" component of the model-view-controller pattern.

$view = new Zend_View();

Choosing a cloud hosting partner with confidence


Providing a secure and efficient Helpdesk
A single remote control platform for user support is be key to providing an efficient helpdesk. Retain full control over the way in which screen and keystroke data is transmitted.
Intelligent flash storage arrays
Tegile Intelligent Storage Arrays with IntelliFlash helps IT boost storage utilization and effciency while delivering unmatched storage savings and performance.
Beginner's guide to SSL certificates
De-mystify the technology involved and give you the information you need to make the best decision when considering your online security options.
Security for virtualized datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.
Secure remote control for conventional and virtual desktops
Balancing user privacy and privileged access, in accordance with compliance frameworks and legislation. Evaluating any potential remote control choice.