SlideShare uma empresa Scribd logo
Yet Another Framework
         (Yaf)
um framework que roda como uma extensão
Introduçã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+++
Instalação
Instalação
PECL:
pecl install yaf


Código fonte:
wget http://pecl.php.net/get/yaf
tar -zxvf yaf
cd yaf
phpize
./configure
make
make install
Configurando
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
Estrutura
Estrutura
- application            - public
  - bin                    .htaccess
  - configs                index.php
     application.ini     - library
  - controllers          .htaccess
     Index.php
  - layouts
      - scripts
         default.phtml
  - models
      Users.php
  - plugins
  - views
      - index
         index.phtml
  - Bootstrap.php
Estrutura
- application/configs/application.ini:

[yaf]
; ------------------------------------------------------------------------------
; Application config
; ------------------------------------------------------------------------------
application.directory = APPLICATION_PATH
application.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 = 1
application.dispatcher.throwException = 1
...
Estrutura
- application/configs/application.ini:

[yaf]
...

; ------------------------------------------------------------------------------
; Database Configuration
; ------------------------------------------------------------------------------
db.adapter                     = pdo_mysql
db.params.host                  = localhost
db.params.user                  = root
db.params.password =
db.params.dbname                = dbteste
db.params.charset               = utf8
db.params.persistence = true

...
Estrutura
- application/configs/application.ini:

[yaf]
...
; Template engine
layout.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]
Estrutura
- application/controllers/Index.php

class IndexController extends YafController_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
{
   ...
}
Testes de Performance
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.8
    php-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
ApacheBench (ab -c200 -n50000)
Testes de Performance
System LoadAvg por 1min rodando o ApacheBench (-c 100 -n 30000)
Testes de Performance
Memória
Testes Unitários
Testes Unitários
Autor
Autor
        Desenvolvedor a 10+ anos

        Freelancer

        Evangelista PHP

        Evangelist Software Livre
Dúvidas?
Contato
E-mail: mrprompt@gmail.com
Twitter: @mrprompt
Site: http://about.me/mrprompt
Fontes
Site oficial: http://www.yafdev.com/
Benchmark: http://www.laruence.com/2011/12/02/2333.html
Pecl: http://pecl.php.net/package/yaf
Manual: http://php.net/yaf
Obrigado :)

Mais conteúdo relacionado

ODP
Alta perfomance de aplicações PHP com Nginx
ODP
Alta Performance de Aplicações PHP com Nginx
ODP
Alta Performance de Aplicações Web em PHP - Nginx
PDF
Php além do LAMP
KEY
A busca pelo deploy continuo
PDF
Samba4+debian8
PDF
Gerenciamento de endereços ip com php ipam
PDF
Apache2.4 tuning-hands on
Alta perfomance de aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações Web em PHP - Nginx
Php além do LAMP
A busca pelo deploy continuo
Samba4+debian8
Gerenciamento de endereços ip com php ipam
Apache2.4 tuning-hands on

Mais procurados (20)

PPTX
05 servidor dhcp
PPTX
07 - Atividade III
PDF
Memcached, Gearman e Sphinx
PDF
FISL11 2010 - Automação de Datacenters
PDF
Django deploy - Como servir aplicações Django em produção
PDF
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
PPTX
Rest workshop
PPTX
Deploy automático em projeto PHP - PHPSPIMA 2016
PDF
Zabbix livro para ubuntu
PDF
Entre na fila. Processamento distribuído usando Gearman
PDF
Vamos conversar sobre cache
PDF
Automatizar backup no pf sense [dica]
ODP
Escalando Sites com Nginx
PDF
O bom, o mau, o vilão... e o node.js
PDF
Slides nginx
PDF
De 1 a 1.000.00 de usuários
PPTX
JBoss-WildFly - Avançado
PPT
Servidores WEB
PDF
Desenvolvimento web no Linux
PDF
Video Distribution in the Internet (pt_BR)
05 servidor dhcp
07 - Atividade III
Memcached, Gearman e Sphinx
FISL11 2010 - Automação de Datacenters
Django deploy - Como servir aplicações Django em produção
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Rest workshop
Deploy automático em projeto PHP - PHPSPIMA 2016
Zabbix livro para ubuntu
Entre na fila. Processamento distribuído usando Gearman
Vamos conversar sobre cache
Automatizar backup no pf sense [dica]
Escalando Sites com Nginx
O bom, o mau, o vilão... e o node.js
Slides nginx
De 1 a 1.000.00 de usuários
JBoss-WildFly - Avançado
Servidores WEB
Desenvolvimento web no Linux
Video Distribution in the Internet (pt_BR)
Anúncio

Destaque (6)

PPTX
Distribua seu código
PDF
PHP além do ambiente LAMP
PDF
Desenvolvendo em php cli
PPTX
Integração Contínua com PHPCI
PDF
Distribua seu código
PDF
Integração contínua - Você não tem dsculpa para não usar
Distribua seu código
PHP além do ambiente LAMP
Desenvolvendo em php cli
Integração Contínua com PHPCI
Distribua seu código
Integração contínua - Você não tem dsculpa para não usar
Anúncio

Semelhante a Yaf - Um framework que roda sob uma extensão (20)

PDF
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
ODP
GlassFish e Maven: Java EE sem dor!
PDF
Testes em aplicações JEE: Montando sua infra de testes automatizados
PDF
Zend Framework 2 é legal ! Mas como ele funciona ?!
PDF
Introdução ao Zend Framework 2
PDF
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
PDF
Dev Ext PHP
PPT
Maverick v1.0
PPTX
TechDay - Sistemas WEB em Java - Rogério N. Jr.
PDF
Analise frameworks php
PDF
Introdução ao zend framework
PPTX
PPT
Cakephp - framework de desenvolvimento de aplicações Web em PHP
PDF
As grandes novidades do JSF 2.0!
PDF
Gerenciamento de projetos com o Apache Ant
PDF
Gerenciamento de projetos com o Apache Ant
PDF
I educar-manual-de-instalaao
PDF
Desenvolvimento de Extensões PECL
ODP
Gerenciamento de Configurações - Puppet
PDF
Tutorial struts
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
GlassFish e Maven: Java EE sem dor!
Testes em aplicações JEE: Montando sua infra de testes automatizados
Zend Framework 2 é legal ! Mas como ele funciona ?!
Introdução ao Zend Framework 2
PHPSC Conference 2010 - Desenvolvimento de Extensões PECL
Dev Ext PHP
Maverick v1.0
TechDay - Sistemas WEB em Java - Rogério N. Jr.
Analise frameworks php
Introdução ao zend framework
Cakephp - framework de desenvolvimento de aplicações Web em PHP
As grandes novidades do JSF 2.0!
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
I educar-manual-de-instalaao
Desenvolvimento de Extensões PECL
Gerenciamento de Configurações - Puppet
Tutorial struts

Yaf - Um framework que roda sob uma extensão