php + framework + mvc cakephp lectures 1. what is framework? cakephp lectures 2
TRANSCRIPT
![Page 1: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/1.jpg)
PHP+
Framework+
MVC CakePHP Lectures 1
![Page 2: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/2.jpg)
What is
Framework?
CakePHP Lectures 2
![Page 3: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/3.jpg)
Common code - Generic functionality
Extensible - Specific functionality
Unlike library – Flow Dictated by Framework
CakePHP Lectures 3
![Page 4: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/4.jpg)
Reusable Design- May include:
Support programs
Code libraries
Tools to develop and glue different components
CakePHP Lectures 4
![Page 5: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/5.jpg)
Whya
Framework?
CakePHP Lectures 5
![Page 6: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/6.jpg)
I am lazy enough to write
long codes,NAAAH...
CakePHP Lectures 6
![Page 7: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/7.jpg)
Technical Aspects:
Proven Architecture
Efficient (Code Re-usability)
Scalable
Extensible
Modularity
CakePHP Lectures 7
![Page 8: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/8.jpg)
Developer Aspects:
Easier maintenance
Shorter development times.
Flexible and less error-prone
CakePHP Lectures 8
![Page 9: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/9.jpg)
Focus => Specialized Functionality
NOT
ArchitectureCommon Tools
Work Flow
CakePHP Lectures 9
![Page 10: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/10.jpg)
How to choose
Framework?
CakePHP Lectures 10
![Page 11: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/11.jpg)
CakePHP Lectures 11
![Page 12: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/12.jpg)
Ofcourse, NOT
CakePHP Lectures 12
![Page 13: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/13.jpg)
Technical Aspects:
Types of application, Types of framework
Technical features of the framework
Ease of development
Ease of testing
Tool support
CakePHP Lectures 13
![Page 14: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/14.jpg)
Viability Aspects:
Frequent release
Future enhancement
Maturity – real life usage cases
Proven market place?
Production Environments?
CakePHP Lectures 14
![Page 15: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/15.jpg)
So, which one?
CakePHP Lectures 15
![Page 16: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/16.jpg)
The one which answers most of the above questions.
CakePHP Lectures 16
![Page 17: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/17.jpg)
PHP+
Framework+
MVC
CakePHPCakePHP Lectures 17
![Page 18: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/18.jpg)
Free Open Source
Rapid Application Development
Active Community
Compatibility with PHP4 and PHP5
Project Age - 5yrs
CakePHP Lectures 18
![Page 19: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/19.jpg)
MVC
Scaffolding
Validation
Data Sanitation
ACL
Components
Helpers
Security
Session
Caching
CakePHP Lectures 19
![Page 20: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/20.jpg)
Easy Installation – 2 Mins
Easy Debugging
Integrated Unit Testing
CakePHP Lectures 20
![Page 21: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/21.jpg)
Setting Up Cake:
Setup Database Configuration
CakePHP supports database drivers:
• mysql• postgres• sqlite• pear-drivername (e.g. pear-mysql)• adodb-drivername
CakePHP Lectures 21
![Page 22: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/22.jpg)
Cake Folder Structure
CakePHP Lectures 22
• app/• config/• controllers/• models/• plugins/• tmp/• vendors/• views/• webroot/
• cake/• config/• docs/• libs/
• vendors/
![Page 23: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/23.jpg)
CakePHP Lectures 23
Folder What it Contains
configHolds the (few) configuration files CakePHP uses. Database connection details, bootstrapping, core configuration files and more should be stored here.
controllers Contains your application’s controllers and their components.
locale Stores string files for internationalization.
models Contains your application’s models, behaviors, and datasources.
plugins Contains plugin packages.
tmp
This is where CakePHP stores temporary data. The actual data it stores depends on how you have CakePHP configured, but this folder is usually used to store model descriptions, logs, and sometimes session information.Make sure that this folder exists and that it is writable, otherwise the performance of your application will be severely impacted. In debug mode, CakePHP will warn you if it is not the case.
vendors
Any third-party classes or libraries should be placed here. Doing so makes them easy to access using the App::import('vendor', 'name') function. Keen observers will note that this seems redundant, as there is also a vendors folder at the top level of our directory structure. We'll get into the differences between the two when we discuss managing multiple applications and more complex system setups.
views Presentational files are placed here: elements, error pages, helpers, layouts, and view files.
webrootIn a production setup, this folder should serve as the document root for your application. Folders here also serve as holding places for CSS stylesheets, images, and JavaScript files.
![Page 24: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/24.jpg)
• The app folder will be where you work your magic: it’s where your application’s files will be placed.
• The cake folder is where we’ve worked our magic. Make a personal commitment not to edit files in this folder. We can’t help you if you’ve modified the core.
• Finally, the vendors folder is where you’ll place third-party PHP libraries you need to use with your CakePHP applications.
CakePHP Lectures 24
![Page 25: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/25.jpg)
Models:
• Access point to a certain table in the database
• Contain data validation rules, associationinformation, and methods specific to the table
• Extends AppModel
CakePHP Lectures 25
![Page 26: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/26.jpg)
Models:
• Table name in plural, like "users" and models in singular “user”.
• Mandatory Primary key named 'id'.
• Foreign keys naming: 'article_id'. (singular-table-name_id).
• 'created' / 'modified' column are automatically populated.
CakePHP Lectures 26
![Page 27: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/27.jpg)
Controllers:
• Manage the logic for a certain section or a single model.
• Include any number of actions
• Actions are functions used in your web application to display views
• Extends AppController
CakePHP Lectures 27
![Page 28: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/28.jpg)
class VideosController extends AppController{
function view($id){//action logic goes here..}function rent($customer_id, $video_id){//action logic goes here..}function search($query){//action logic goes here..}
}
example URLs:http://www.example.com/videos/view/253http://www.example.com/videos/rent/5124/0-2352
CakePHP Lectures 28
![Page 29: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/29.jpg)
Controller action as a webservice
• Set WEBSERVICES in /app/config/core.php to 'on'
• Structure the logic in controller just as you normally would
CakePHP Lectures 29
![Page 30: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/30.jpg)
Views:
a page template, usually named after an action.
view for PostsController::add() would be found at /app/views/posts/add.ctp.
simply PHP files, so you can use any PHP code inside them
CakePHP Lectures 30
![Page 31: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/31.jpg)
Views:
data is passed as an array called $data
data handed to the view using set() in the controller is also available in view.
HTML helper is available in every view by default
layout contains presentational code that wraps around view. Usually, common for one controller.
CakePHP Lectures 31
![Page 32: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/32.jpg)
Scaffolding:
• Way of getting the early parts of developing a web application started.
• Analyze database tables and creates standard lists, add, delete, edit.
• Add scaffolding by adding the $scaffold variable to controller.
CakePHP Lectures 32
![Page 33: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/33.jpg)
Components:
Components are used to aid controllers in specific situations.A Reusable code which seamlessly sits inside Controller
Sample Component Classclass FooComponent extends Object{var $someVar = null;var $controller = true;function startup(&$controller){// Perform controller initialization here.}function doFoo(){$this->someVar = 'foo';}}
CakePHP Lectures 33
![Page 34: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/34.jpg)
add the following code in your controller's definition:
var $components = array('Foo');
Inside of that controller you could now use:
$this->Foo->doFoo();
CakePHP Lectures 34
![Page 35: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/35.jpg)
Helpers:
Common functions to format views.Quick-and-easy creation of web forms
image($path, $htmlAttributes, $return = false);Renders an image tag.
tableHeaders($names, $tr_options,
$th_options);create a formatted table header.
CakePHP Lectures 35
![Page 36: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/36.jpg)
Other Helpers:
AJAX
Javascript
Number
Text
Time
Cache
(You can create your own helper.)CakePHP Lectures 36
![Page 37: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/37.jpg)
Data Validation:
Data in a Model conforms to the business rules.
Example /app/models/user.php
<?phpclass User extends AppModel{
var $name = 'User';var $validate = array('login' => '/[a-z0-9\_\-]{3,}$/i',
'password' => VALID_NOT_EMPTY,'email' => VALID_EMAIL,'born' => VALID_NUMBER
);}?> CakePHP Lectures 37
![Page 38: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/38.jpg)
Plugins:
Distribute combination of controllers, models, and views as package.
Example: Pizza Ordering Filesystem Layout
/app/plugins/pizza/controllers <- plugin controllers gohere/models <- plugin models go here/views <- plugin views go here/pizza_app_controller.php <- plugin's AppController,named after the plugin/pizza_app_model.php <- plugin's AppModel, named after the plugin CakePHP Lectures 38
![Page 39: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/39.jpg)
ACL:
Access Request Objects (AROs) andAccess Control Objects (ACOs)
$aro = new Aro();
// Create ARO$aro->create( 1, null, 'Bob Marley' );
// Create Groups$aro->create(0, null, 'Artists');
//Hook ARO with Group$aro->setParent('Artists', 'Bob Marley');
CakePHP Lectures 39
![Page 40: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/40.jpg)
Creating ACOs and assigning permissions
$aco = new Aco();
//Create some access control objects:$aco->create(1, null, 'Electric Guitar');
$this->Acl->allow('Abraham Lincoln', 'Electric Guitar','read');
CakePHP Lectures 40
![Page 41: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/41.jpg)
// Check Access
$access =$this->Acl->check($this->Session-> read('user_alias'), $aco, $action = "*");
//access deniedif ($access === false){
echo "access denied";exit;
}
CakePHP Lectures 41
![Page 42: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/42.jpg)
Data Sanitation:
Makes User Given Data Safe for use in SQL andHTML
// First, include library and instantiate:uses('sanitize');$mrClean = new Sanitize();
$badString = ";:<script><html>< // >@@#";echo $mrClean->paranoid($badString);// output: scripthtml
echo $mrClean->paranoid($badString, array(' ', '@'));// output: scripthtml @@
CakePHP Lectures 42
![Page 43: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/43.jpg)
Sessions:
Here are some of the functions you'll use most:
check ($name);del ($name);delete ($name);Error ();flash ($key = 'flash');read ($name);renew ();;
CakePHP Lectures 43
![Page 44: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/44.jpg)
Security:
RequirePost()
class ThingsController extends AppController{var $components = array('Security');function beforeFilter(){$this->Security->requirePost('delete');}function delete($id){// This will only happen if the action is called via an HTTP POST request$this->Thing->del($id);}}
CakePHP Lectures 44
![Page 45: PHP + Framework + MVC CakePHP Lectures 1. What is Framework? CakePHP Lectures 2](https://reader030.vdocuments.net/reader030/viewer/2022033022/56649eb45503460f94bbb9f0/html5/thumbnails/45.jpg)
5 Mins Blog Tutorial
with Unit Testing
CakePHP Lectures 45