CakePHP.

Slides:



Advertisements
Similar presentations
Applied Ruby on Rails & AJAX An insight into the technology and principles behind a social networking community.
Advertisements

PHP + Framework + MVC. What is Framework? Common code - Generic functionality Extensible - Specific functionality Unlike library – Flow Dictated by.
CakePHP. A framework for developing applications in PHP Inspired by Ruby on Rails Follows MVC design pattern Convention over configuration –No wheel reinventing.
Other Web Application Development Technologies. PHP.
The Librarian Web Page Carol Wolf CS396X. Create new controller  To create a new controller that can manage more than just books, type ruby script/generate.
Ruby on Rails Model of MVC. Model-View-Controller Paradigm A way of organizing a software system Benefits: Isolation of business logic from the user interface.
1.  Understanding about How to Working with Server Side Scripting using PHP Framework (CodeIgniter) 2.
CakePHP A PHP Framework. CakePHP A framework for developing applications in PHP Inspired by Ruby on Rails Follows MVC design pattern Convention over configuration.
Chapter 15 © 2010 by Addison Wesley Longman, Inc Origins and Uses of Ruby - Designed by Yukihiro Matsumoto; released in Use spread rapidly.
Amit Kumar Singh ITBrainShapers. MVC Model Data layer View Presentation layer Controller Logic layer.
Lecture 4: Introduction to PHP 3 PHP & MySQL
27-Jun-15 Rails. What is Rails? Rails is a framework for building web applications This involves: Getting information from the user (client), using HTML.
PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik.
Ruby on Rails: An Introduction JA-SIG Summer Conference 2007 Michael Irion The University of Tulsa.
RUBY ON RAILS It’s so rad. What we’ll cover  What is Ruby?  What is RoR?  Why RoR?  Developing with RoR  Deployment  Demo  Questions.
Ruby on Rails. What is Ruby on Rails? Ruby on Rails is an open source full-stack web framework. It is an alternative to PHP/MySQL. It can render templates,
U NIT 4 F ILE U PLOAD. I. C REATE AN U PLOAD -F ILE F ORM - With PHP, it is possible to upload files to the server.To allow users to upload files from.
Rails and Grails. To get started Make sure you have java installed You can get the sdk and jre at:
Stored Procedures, Triggers, Program Access Dr Lisa Ball 2008.
School of Computing and Information Systems CS 371 Web Application Programming CakePHP Server-side Framework.
Ruby on Rails Your first app. Rails files app/ Contains the controllers, models, views and assets for your application. You’ll focus on this folder for.
PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2.
School of Computing and Information Systems CS 371 Web Application Programming PHP – Forms, Cookies, Sessions and Database.
Web Scripting [PHP] CIS166AE Wednesdays 6:00pm – 9:50pm Rob Loy.
CAKEPHP Blog tutorial. what you’ll need examples/blog/blog.html 2  A running web server  A database server.
The Active Record Paradigm Databases in Database-Centric Web Site Development.
PHP MySQL Image Gallery. The admin section contain the following : Add New Album Album List Edit & Delete Album Add Image Image List Edit & Delete Image.
MVC Concepts Basics Model-View-Controller (MVC) Concepts for Web Developers SoftUni Team Technical Trainers Software University
Introduction to PHP.
PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.
Date : 3/04/2010 Web Technology Solutions Class: PHP Web Application Frameworks.
Introduction to information systems RUBY ON RAILS dr inż. Tomasz Pieciukiewicz.
Lab 3.21 MySQL Database Lab Developing the Tools May 5 th, 2004 Montréal, Québec Dominik Gehl Hôpital Ste-Justine, Montréal.
PHP Tutorial. What is PHP PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages.
BIT 286: Web Applications ASP.Net MVC. Objectives Applied MVC overview Controllers Intro to Routing Views ‘Convention over configuration’ Layout files.
Data in Windows 10 UWP Andy Wigley XML, JSON, SQLite or EF Core ?
Top 50 Interview Questions & Answers in CakePHP. 2 Question : 1 What is CakePHP?  CakePHP is a free, open-source, rapid development framework for PHP.
The Brenkoweb provides the excellent online programming tutorial for the programmer in various languages like as PHP, SQL, HTML, ASP, Javascript,
Cake PHP – OOPS approach for PHP
DEV Training Sahana Developer Training. DEV Training PHP.
Introduction The concept of a web framework originates from the basic idea that every web application obtains its foundations from a similar set of guidelines.
Web Technology Solutions
PHP using MySQL Database for Web Development (part II)
Jim Fawcett CSE686 – Internet Programming Summer 2010
Jim Fawcett CSE686 – Internet Programming Spring 2014
Working with Server Side Scripting: PHP Framework (CodeIgniter)
INLS 623– Stored Procedures
What is Laravel ? By Georgi Genov.
Introduction to Dynamic Web Programming
Jim Fawcett CSE686 – Internet Programming Spring 2012
Unix System Administration
IS1500: Introduction to Web Development
Play Framework: Introduction
Play Framework: Introduction
Student portal & web applications
Introduction to CodeIgniter (CI)
Session 4 PHP & MySQL.
(Arnulf's Tcl Web Framework)
PHP Training at GoLogica in Bangalore
Introduction to MVC PHP Web Development Ivan Yonkov Training Manager
PHP / MySQL Introduction
Server-Side Application and Data Management IT IS 3105 (Spring 2010)
MySQL tutorial.
Web Browser server client 3-Tier Architecture Apache web server PHP
PHP.
Project Phase II Instructions &Sample Code
Tutorial 6 PHP & MySQL Li Xu

PHP an introduction.
PHP By Prof. B.A.Khivsara Note: The material to prepare this presentation has been taken from internet and are generated only for students reference and.
Presentation transcript:

CakePHP

CakePHP A framework for developing applications in PHP Inspired by Ruby on Rails Follows MVC design pattern Convention over configuration No wheel reinventing required!

MVC Model Data layer View Presentation layer Controller Logic layer

CakePHP Framework app/ cake/ config/ controllers/ models/ plugins/ tmp/ vendors/ views/ webroot/ cake/ docs/ libs/

Naming conventions http://book.cakephp.org/view/328/C ake-Conventions Table names: “notes”, “my_notes” Model: “mynote.php”->“MyNote” Controller: “my_notes_controller.php”-> “MyNotesController” Views named after actions, organised in folders according to the related controller: views/my_notes/index.thtml views/my_notes/add.thtml

Paths + parameters Cake uses url to pass parameters Apache mod_rewrite converts url into scriptname and parameters http://www.example.com /controllername/action/param1/param2/… Uses paths to figure out views Views stored in “controllername” folder

OOP in PHP Limited support in PHP <5 Much better support in PHP >=5 Simpler than Java OOP class SomeClass { function func() { …. } SomeClass s = new someClass(); s->func();

Hello world… again <?php /* /app/model/hello.php */ Remember application is separated into model / view / controller Model: <?php /* /app/model/hello.php */ class Hello extends AppModel { var $name = 'Hello'; var $useTable = false; } ?>

Hello world… again <!-- /* /app/views/index.thtml */ --> <hr size=1/> <h1><?php echo $data ?></h1>

/* app/controller/hello_controller.php */ class HelloController extends AppController { var $name = "Hello"; var $uses = 'Hello'; function index() { $data = 'Hello world!'; $this->set('data', $data); } ?>

Simple DB table app An online contact list We want to add, edit, view and delete names and phone numbers Uses a single table

Model Add table to DB: CREATE TABLE cake_contacts ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), number VARCHAR(50), created DATETIME DEFAULT NULL, modified DATETIME DEFAULT NULL );

Model Add a script called contact.php to models/ <?php class Contact extends AppModel { var $name = ‘Contact'; } ?>

View views/contacts/index.thtml <h1>Contact list</h1> <p> <?php echo $html->link('Add Contact', 'contacts/add') ?> </p> <table> <tr> <th>Id</th> <th>Name</th> <th>Number</th> </tr>

View views/contacts/index.thtml cntd… <?php foreach ($contacts as $contact): ?> <tr> <td><?php echo $contact['Contact']['id']; ?></td> <td> <?php echo $html->link($contact['Contact'][name'], "contacts/view/{$contact['Contact']['id']}")?> [<?php echo $html->link('Edit', "contacts/edit/{$contact['Contact']['id']}")?>, <?php echo $html->link('Delete', "contacts/delete/{$contact['Contact']['id']}", null, 'Sure?')?>] </td> <td><?php echo $contact['Contact']['created']; ?> </tr> <?php endforeach; ?> </table>

views/contacts/view.thtml <h1><?php echo $data['Contact']['name']?></h1> <p><small> Created: <?php echo $data['Contact']['created']?> </small></p> <p><?php echo $data['Contact']['number']?></p>

View views/contacts/add.thtml <h1>Add Contact</h1> <form action="<?php echo $html->url("contacts/add"); ?>" method="post"> <p>Name: <?php echo $html->input('Contact/name', array('size' => '40')) ?> </p> <p>Number: <?php echo $html->input('Contact/number', array('size' => '40')) ?> <p><?php echo $html->submit('Save') ?> </form>

View views/contacts/edit.thtml <h1>Edit Contact</h1> <form action="<?php echo $html- >url('/contacts/edit')?>" method="post"> <?php echo $html->hidden('Contact/id'); ?> <p>Name: <?php echo $html->input('Contact/name', array('size' => '40')) ?> </p> <p>Number: <?php echo $html->input('Contact/number', <p> <?php echo $html->submit('Save') ?> </form>

Controller /app/controllers/notes_controller.php: <?php class ContactsController extends AppController { var $name = 'Contacts'; function index() { $this->set('contacts', $this->Contact- >findAll()); } function view($id) { $this->Contact->id = $id; $this->set('data', $this->Contact->read());

Controller /app/controllers/notes_controller.php: function add() { if (!empty($this->data['Contact'])) { if($this->Contact->save($this->data['Contact'])) { $this->flash('Your contact has been added.', ‘/contacts/'); } function delete($id) { if ($this->Contact->del($id)) { $this->flash('The contact with id: '.$id.' has been deleted.', ‘/contacts/');

Controller /app/controllers/notes_controller.php: function edit($id = null) { if (empty($this->data['Contact'])) { $this->Contact->id = $id; $this->data = $this->Contact->read(); } else { if($this->Contact->save($this->data['Contact'])) { $this->flash('Your contact has been updated.',‘/contacts/'); } ?>

Resulting application …../cake/contacts/add …../cake/contacts/edit/1 …../cake/contacts/view/4

Other benefits Bake script – command line script generator Uses LAMP common web platform (Linux, Apache, MySQL and PHP) Helpers for HTML, Forms, Pagination, AJAX, Javascript, XML, RSS Scaffolding (no need for views) Create controller with var $scaffold;

Disadvantages Mainly due to the limitations of PHP Clumsy OOP Access data through arrays not classes (which RoR does) – more code in view Create tables in separate SQL Not well documented yet