Yaf - Um framework que roda sob uma extensão

Preview:

Citation preview

Yet Another Framework (Yaf)

um framework que roda como uma extensão

Introdução

Um framework similar ao ZF , escrito e C e que funciona como uma extensão do PHP

PHP 5.2.1

Padrão MVC

Rápido+++

Introdução

Instalação

PECL: pecl install yaf

Código fonte:wget http://pecl.php.net/get/yaftar -zxvf yafcd yafphpize./configuremakemake install

Instalação

Configurando

- yaf.library: caminho de inclusão global para o autoloader

- yaf.action_prefer: ação padrão

- yaf.use_spl_autoload: ativando, força o Yaf a retornar FALSE caso não encontre a classe necessária e utilizará outro auto loader além do Yaf_Loader

- yaf.environ: define o ambiente, o padrão é "product", para ser utilizado no INI

- yaf.use_namespace: se o PHP 5.3+ estiver disponível, força o uso de Namespace para trabalhar com as classes

Configurando

Estrutura

Estrutura- public .htaccess index.php - library.htaccess

- application - bin - configs application.ini - controllers Index.php - layouts - scripts default.phtml - models Users.php - plugins - views - index index.phtml - Bootstrap.php

- application/configs/application.ini:

[yaf]; ------------------------------------------------------------------------------; Application config; ------------------------------------------------------------------------------application.directory = APPLICATION_PATHapplication.library = APPLICATION_PATH "/../library"application.baseUri = "/index"

; ------------------------------------------------------------------------------; Bootstrap; ------------------------------------------------------------------------------application.bootstrap = APPLICATION_PATH "/Bootstrap.php"

...

Estrutura

- application/configs/application.ini:

[yaf]...; ------------------------------------------------------------------------------; Autoloader namespaces; ------------------------------------------------------------------------------application.namespaces[] = 'Doctrine'application.namespaces[] = 'Symfony'application.namespaces[] = 'Application'

; ------------------------------------------------------------------------------; Tratamento de erros, jogando para o controlador de Erro; ------------------------------------------------------------------------------application.dispatcher.catchException = 1application.dispatcher.throwException = 1...

Estrutura

Estrutura- application/configs/application.ini:

[yaf]...

; ------------------------------------------------------------------------------; Database Configuration; ------------------------------------------------------------------------------db.adapter = pdo_mysqldb.params.host = localhostdb.params.user = rootdb.params.password = db.params.dbname = dbtestedb.params.charset = utf8db.params.persistence = true

...

Estrutura- application/configs/application.ini:

[yaf]...; Template enginelayout.dir = APPLICATION_PATH "/layouts/scripts"layout.file = default.phtml

; Rotas (urls personalizadas);a rewrite route match request /;routes.inicio.type = "rewrite";routes.inicio.match = "/";routes.inicio.route.controller = index;routes.inicio.route.action = index

[production:yaf]

[development:yaf]

- application/controllers/Index.php

class IndexController extends \Yaf\Controller_Abstract{ /** * Construtor */ public function init() {} /** * Default action */ public function indexAction() {}}

Estrutura

- application/layouts/scripts/default.phtml:

<html> <head> <title>Teste Yaf</title> </head> <body> <?= $this->content ?> </body></html>

Estrutura

- application/models/Users.php:

class UsersModel{ ...}

Estrutura

Testes de Performance

Hardware

● CPU: Intel Core i5 750 (2.67GHz x4)RAM: 4GB

●Ambiente

● Debian 6.0.3 x86_64 (2.6.32-39)apache 2.2.16 (mpm-prefork, mod-php5)php 5.3.8php-apc 3.1.9 (Otimizado para include/require)Copy all projects to /dev/shm/* (Otimização para leitura/escrita)

Applicação"Hello world", utilizando a estrutura MVC, sem banco.

Testes de Performance

Testes de PerformanceApacheBench (ab -c200 -n50000)

Testes de PerformanceSystem LoadAvg por 1min rodando o ApacheBench (-c 100 -n 30000)

Testes de PerformanceMemória

Testes Unitários

Testes Unitários

Autor

AutorDesenvolvedor a 10+ anos

Freelancer

Evangelista PHP

Evangelist Software Livre

Dúvidas?

Contato

E-mail: mrprompt@gmail.comTwitter: @mrpromptSite: http://about.me/mrprompt

Site oficial: http://www.yafdev.com/Benchmark: http://www.laruence.com/2011/12/02/2333.htmlPecl: http://pecl.php.net/package/yafManual: http://php.net/yaf

Fontes

Obrigado :)

Recommended