yaf - um framework que roda sob uma extensão
TRANSCRIPT
![Page 1: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/1.jpg)
Yet Another Framework (Yaf)
um framework que roda como uma extensão
![Page 2: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/2.jpg)
Introdução
![Page 3: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/3.jpg)
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
![Page 4: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/4.jpg)
Instalação
![Page 5: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/5.jpg)
PECL: pecl install yaf
Código fonte:wget http://pecl.php.net/get/yaftar -zxvf yafcd yafphpize./configuremakemake install
Instalação
![Page 6: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/6.jpg)
Configurando
![Page 7: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/7.jpg)
- 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
![Page 8: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/8.jpg)
Estrutura
![Page 9: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/9.jpg)
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
![Page 10: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/10.jpg)
- 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
![Page 11: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/11.jpg)
- 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
![Page 12: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/12.jpg)
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
...
![Page 13: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/13.jpg)
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]
![Page 14: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/14.jpg)
- application/controllers/Index.php
class IndexController extends \Yaf\Controller_Abstract{ /** * Construtor */ public function init() {} /** * Default action */ public function indexAction() {}}
Estrutura
![Page 15: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/15.jpg)
- application/layouts/scripts/default.phtml:
<html> <head> <title>Teste Yaf</title> </head> <body> <?= $this->content ?> </body></html>
Estrutura
![Page 16: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/16.jpg)
- application/models/Users.php:
class UsersModel{ ...}
Estrutura
![Page 17: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/17.jpg)
Testes de Performance
![Page 18: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/18.jpg)
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
![Page 19: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/19.jpg)
Testes de PerformanceApacheBench (ab -c200 -n50000)
![Page 20: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/20.jpg)
Testes de PerformanceSystem LoadAvg por 1min rodando o ApacheBench (-c 100 -n 30000)
![Page 21: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/21.jpg)
Testes de PerformanceMemória
![Page 22: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/22.jpg)
Testes Unitários
![Page 23: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/23.jpg)
Testes Unitários
![Page 24: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/24.jpg)
Autor
![Page 25: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/25.jpg)
AutorDesenvolvedor a 10+ anos
Freelancer
Evangelista PHP
Evangelist Software Livre
![Page 26: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/26.jpg)
Dúvidas?
![Page 28: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/28.jpg)
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
![Page 29: Yaf - Um framework que roda sob uma extensão](https://reader033.vdocuments.pub/reader033/viewer/2022060119/558fc30c1a28abe7668b47da/html5/thumbnails/29.jpg)
Obrigado :)