Upload
thiago-paes
View
1.205
Download
0
Embed Size (px)
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: [email protected]: @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 :)