Sunday, November 27, 2011

Naming conventions in cakephp

•Naming conventions
–Class name :MyFirstClassfilename: my_first_name.php
–Classname: Book tablename: books
–Classname: BooksController
Ex:
Database table : books
Model class : Book
Controller class : BooksController
View found at : /app/views/books/index.ctp
Steps
•Creating the database
•Creating a model
•Creating a controller
•Creating the views
Creating the database
•Create a new table (name should be according to the naming conventions)
•Enter the data.
•(Using phpmyadmin)
Creating a model
•Separates the domain logic from presentation isolating the application logic.
•Extends AppModel(extends Model)
•Contains data validation rules, association information and methods specific to the table it uses.
•For complete reference http://api.cakephp.org
•Cakephpdynamically creates a model object
class Book extends AppModel{
var$name = ‘Book';
}
•We do can add some behaviors to each model.
Creating a controller
•Manages the logic for a part of our application
•Can access the model object by $this->Book
class BooksControllerextends AppController{
var$name = 'Books';
function index() {
$this->set('books', $this->Book->find('all'));
}
}
•$this->loadModel(‘Article'); loads a different model
•Components (packages of logic that are shared between controllers)
Creating the views
•Layouts (placed in /app/views/layouts)
•Elements (reusable parts)
•Helpers
(var$helpers = array('Form', 'Html', 'Javascript', 'Time');)
Sample model
<?php
class Book extends AppModel
{
var$name = 'Book';
var$validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'author' => array(
'rule' => 'notEmpty'
)
);
}
?>
Sample Controller
<?php
class BooksControllerextends AppController{
var$name = 'Books';
var$helpers = array('Html','Ajax','Javascript');
function index()
{
$this->set('books', $this->Book->find('all'));
}
function view($id = null) {
$this->Book->id = $id;
$this->set('book', $this->Book->read());
print_r($this->viewVars);
}
}
Sample view
<h1>Books</h1>
<table>
<tr>
<th>Id</th>
<th>Title</th>
<th>Author</th>
</tr>
<?phpforeach($books as $book: ?>
<tr>
<td><?phpecho $book*‘Book'+*'id'+; ?></td>
<td>
<?php echo $html->link($book*‘Book+*'title'+,
array('controller' => ‘books’, 'action' => 'view', $book*‘Book+*'id'+)); ?>
</td>
<td><?php echo $book*‘Book+*‘author'+; ?></td>
</tr>
<?php endforeach; ?>
</table>

No comments:

Post a Comment