joomla framework tour

Post on 10-Apr-2015

1.517 Views

Category:

Documents

8 Downloads

Preview:

Click to see full reader

DESCRIPTION

Louis Landry's slides about the Joomla! Framework for a presentation to Joomla! Summer of Code Students.

TRANSCRIPT

Joomla! Framework 101

A Virtual Tour

Methods to Remember

jimport(‘dot.separated.path.to.library’);

JText::_(‘String_To_Translate’);

JRoute::_(‘index.php?option=com_foo&...’);

Everything in the JFactory class

JFactory::getDBO()

JFactory::getDocument()

JFactory::getUser() , etc.

The Most Important Packages

Application

Database

Document

Environment

Html

The Application Package

Model-View-Controller libraries

Application library

Menu library

Module and Component helper libraries.

Model-View-Controller

Controller manages the request

Two principle request types

View based -- GET

Task based -- POST

Controllers choose and instantiate Models and Views for the request

Model-View-Controller

Models manage data

Models strive to be request agnostic

Views manage presentation

Views get data from Models through get()

eg. $this->get(‘List’); calls MyModel::getList();

Views include layouts to render output

Application Library

Application object is at the center of Joomla

Loads configuration

Initializes session

Routes request

Executes component

Renders document

Database Package

Database library

Simple and lightweight

Sanitize data before insert or update

Always check for errors

Database Package

Table library

Encapsulates a database table/row

Add your own with: JTable::addIncludePath(‘/path/to/files/’);

Provides some basic features common to Joomla related tables

Always implement the check() method

Document Package

Document library encapsulates all output to the browser

Several document types

HTML is default

RAW is magic

view.html.php - view.feed.php - view.csv.php

Environment Package

Browser library detects browser

Request library is your friend

Filters data based on what you need

Integers, words, floats, paths, etc.

Response library handles headers and body

URI library allows manipulation and detection

HTML Package

HTML goes in layouts

HTML goes in layouts

HTML goes in layouts

HTML goes in layouts

HTML goes in layouts

HTML goes in layouts

HTML Package

JHtml::_(‘{CLASS}.{METHOD}’, $arg1, ...);

Add your own with: JHtml::addIncludePath(‘/path/to/files’);

Editor library

Pagination library

Pane library

The Rest of the Packages

Base

Cache

Client

Error

Event

The Rest of the Packages

Filesystem

Filter

Installer

Language

Mail

The Rest of the Packages

Plugin

Registry

Session

Template

User

Utilities

top related