29
Yet Another Framework (Yaf) um framework que roda como uma extensão

Yaf - Um framework que roda sob uma extensão

Embed Size (px)

Citation preview

Page 1: Yaf - Um framework que roda sob uma extensão

Yet Another Framework (Yaf)

um framework que roda como uma extensão

Page 2: Yaf - Um framework que roda sob uma extensão

Introdução

Page 3: Yaf - Um framework que roda sob uma extensã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

Page 4: Yaf - Um framework que roda sob uma extensão

Instalação

Page 5: Yaf - Um framework que roda sob uma extensão

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

Configurando

Page 7: Yaf - Um framework que roda sob uma extensão

- 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

Estrutura

Page 9: Yaf - Um framework que roda sob uma extensão

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

- 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

- 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

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

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

- 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

- 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

- application/models/Users.php:

class UsersModel{ ...}

Estrutura

Page 17: Yaf - Um framework que roda sob uma extensão

Testes de Performance

Page 18: Yaf - Um framework que roda sob uma extensão

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

Testes de PerformanceApacheBench (ab -c200 -n50000)

Page 20: Yaf - Um framework que roda sob uma extensão

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

Page 21: Yaf - Um framework que roda sob uma extensão

Testes de PerformanceMemória

Page 22: Yaf - Um framework que roda sob uma extensão

Testes Unitários

Page 23: Yaf - Um framework que roda sob uma extensão

Testes Unitários

Page 24: Yaf - Um framework que roda sob uma extensão

Autor

Page 25: Yaf - Um framework que roda sob uma extensão

AutorDesenvolvedor a 10+ anos

Freelancer

Evangelista PHP

Evangelist Software Livre

Page 26: Yaf - Um framework que roda sob uma extensão

Dúvidas?

Page 27: Yaf - Um framework que roda sob uma extensão

Contato

E-mail: [email protected]: @mrpromptSite: http://about.me/mrprompt

Page 28: Yaf - Um framework que roda sob uma extensão

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

Obrigado :)