SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
PHP’s FIG and PSRs*

*or how to come up with a title made up of acronyms
miércoles 6 de noviembre de 13
ABOUT ME

miércoles 6 de noviembre de 13
Javier López

I work in London

I was born in Spain

miércoles 6 de noviembre de 13
Lead Engineer at Time Out
Previously worked for IPC Media and Sensio Labs

miércoles 6 de noviembre de 13
www.desymfony.com

me

miércoles 6 de noviembre de 13
AGENDA

miércoles 6 de noviembre de 13
1.

FIG

2.

PSRs

3.

SWN

miércoles 6 de noviembre de 13
#1
Framework
Interoperability
Group

miércoles 6 de noviembre de 13
David Zülke

M. Dowling

Leo Feyer

G. Blanco

Larry Garfield

Taylor Otwell

Nate Abele

Brett Bieber

P. Sturgeon

Evert Pot

John Mertic

miércoles 6 de noviembre de 13

Ivan Habunek

Kris Wallsmith

Paul Jones

Larry Masters

Jordi Boggiano

André Romcke K. Dambekalns Lukas Smith

Don Gilbert

Nils Adermann Mike van Riel Paul Dragoonis

Will Durand

B. Schussek

Cal Evans

Alex. Makarov

Pádraic Brady
Do you want to become a
member?

miércoles 6 de noviembre de 13
#2
PHP
Standards
Recomendation

miércoles 6 de noviembre de 13
PSR-0 Autoloading
PSR-1 Basic Coding Standards
PSR-2 Coding Style Guide
PSR-3 Logger Interface

miércoles 6 de noviembre de 13
PSR-0
Autoloading

miércoles 6 de noviembre de 13
<Vendor Name>(<Namespace>)*<Class Name>

miércoles 6 de noviembre de 13
DoctrineCommonIsolatedClassLoader
/path/to/lib/vendor/Doctrine/Common/IsolatedClassLoader.php

miércoles 6 de noviembre de 13
ZendAcl
/path/to/lib/vendor/Zend/Acl.php

miércoles 6 de noviembre de 13
VendorPackageClass_Subclass
/path/to/lib/vendor/Vendor/Package/Class/Subclass.php

miércoles 6 de noviembre de 13
VendorWith_UnderscoresClass
/path/to/lib/vendor/Vendor/With_Underscores/Class.php

miércoles 6 de noviembre de 13
SplClassLoader implementation

http://gist.github.com/221634
miércoles 6 de noviembre de 13
Composer

http://getcomposer.org
miércoles 6 de noviembre de 13
PSR-1
Basics Coding Standards

miércoles 6 de noviembre de 13
Files must use only <?php and <? tags

miércoles 6 de noviembre de 13
Files SHOULD either declare symbols or
cause side-effects but SHOULD NOT do
both.

miércoles 6 de noviembre de 13
Namespaces and classes follow PSR-0

miércoles 6 de noviembre de 13
Class names declared in StuldyCaps

miércoles 6 de noviembre de 13
Class constants MUST be
UPPERCASED_WITH_UNDERSCORES_SEPARATORS

miércoles 6 de noviembre de 13
Class methods declared in camelCase

miércoles 6 de noviembre de 13
PSR-2
Coding Styling Guide

miércoles 6 de noviembre de 13
Namespaces and classes follow PSR-1

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// method body
}
}
miércoles 6 de noviembre de 13
<?php LF
namespace VendorPackage; LF
use FooInterface; LF
use BarClass as Bar; LF
use OtherVendorOtherPackageBazClass; LF
class Foo extends Bar implements FooInterface LF
{
public function sampleFunction($a, $b = null) LF
{ LF
if ($a === $b) { LF
bar(); LF
} elseif ($a > $b) { LF
$foo->bar($arg1); LF
} else { LF
BazClass::bar($arg2, $arg3); LF
} LF
} LF
final public static function bar() LF
{ LF
// method body
} LF
} LF
LF
miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// method body
}
}
miércoles 6 de noviembre de 13

80

120
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// method body
}
}
miércoles 6 de noviembre de 13
PHP keywords all lowercase

miércoles 6 de noviembre de 13
true, false and null all lowercase

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
LF

use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
LF

class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// method body
}
}
miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public $foo = null;
final public static function bar($arg1, &$arg2)
{
// body
}
}

miércoles 6 de noviembre de 13
and the list goes on and on and on
... methods and function calls
... control structures
... closures
... multiple lines
...
http://www.php-fig.org/psr/psr-2/

miércoles 6 de noviembre de 13
> phpcs --standard=PSR2 *.php

https://github.com/squizlabs/PHP_CodeSniffer

miércoles 6 de noviembre de 13
> php php-cs-fixer.phar fix .

https://github.com/fabpot/PHP-CS-Fixer

miércoles 6 de noviembre de 13
PSR-3
Logger Interface

miércoles 6 de noviembre de 13
<?php
namespace PsrLog;
interface LoggerInterface
{
public function alert($message, array $context = array());
public function critical($message, array $context = array());
public function error($message, array $context = array());
public function warning($message, array $context = array());
public function notice($message, array $context = array());
public function info($message, array $context = array());
public function debug($message, array $context = array());
public function log($level, $message, array $context = array());
}

miércoles 6 de noviembre de 13
RFC 5424
Emergency – the system is unusable
Alert – immediate action is required
Critical – critical conditions
Error – errors that do not require immediate attention but should be monitored
Warning – unusual or undesirable occurrences that are not errors
Notice – normal but significant events
Info – interesting events
Debug – detailed information for debugging purposes

http://tools.ietf.org/html/rfc5424
miércoles 6 de noviembre de 13
$message = "{DB}: SELECT * FROM user";
$context = array("DB" => "MY_PROJECT");
$logger->debug($message, $context); // "MY PROJECT": SELECT * FROM user"

miércoles 6 de noviembre de 13
Helper classes and interfaces

miércoles 6 de noviembre de 13
<?php
namespace PsrLog;
abstract class AbstractLogger implements LoggerInterface
{
    public function emergency($message, array $context = array())
    {
        $this->log(LogLevel::EMERGENCY, $message, $context);
    }
.
.
.
    public function debug($message, array $context = array())
    {
        $this->log(LogLevel::DEBUG, $message, $context);
    }
}

miércoles 6 de noviembre de 13
<?php
namespace PsrLog;
trait LoggerTrait
{
    public function emergency($message, array $context = array())
    {
        $this->log(LogLevel::EMERGENCY, $message, $context);
    }
.
.
.
    abstract public function log($level, message, array $context)
}

miércoles 6 de noviembre de 13
<?php
namespace PsrLog;
class NullLogger extends AbstractLogger
{
public function log($level, $message, array $context = array())
{
}
}

miércoles 6 de noviembre de 13
<?php
namespace PsrLog;
interface LoggerAwareInterface
{
public function setLogger(LoggerInterface $logger);
}

miércoles 6 de noviembre de 13
<?php
namespace PsrLog;
class LogLevel
{
const EMERGENCY
const ALERT
const CRITICAL
const ERROR
const WARNING
const NOTICE
const INFO
const DEBUG
}

miércoles 6 de noviembre de 13

=
=
=
=
=
=
=
=

'emergency';
'alert';
'critical';
'error';
'warning';
'notice';
'info';
'debug';
https://github.com/php-fig/log

miércoles 6 de noviembre de 13
{
    "require": {
        "psr/log": "dev-master"
    }
}

miércoles 6 de noviembre de 13
Monolog

https://github.com/Seldaek/monolog
miércoles 6 de noviembre de 13
#3
So
What
Now?

miércoles 6 de noviembre de 13
PSR-4?

miércoles 6 de noviembre de 13
My humble opinion

miércoles 6 de noviembre de 13
Thanks! Questions?

@loalf
miércoles 6 de noviembre de 13

Más contenido relacionado

La actualidad más candente

Ejercicios Basicos Sobre Linux
Ejercicios Basicos Sobre LinuxEjercicios Basicos Sobre Linux
Ejercicios Basicos Sobre Linuxmanuel campo
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebChema Alonso
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityFe
 
Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG21
Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG21Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG21
Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG211v4n (a.k.a. 1r0Dm48O)
 
Instrucciones basicas para_c_2 - copia
Instrucciones basicas para_c_2 - copiaInstrucciones basicas para_c_2 - copia
Instrucciones basicas para_c_2 - copiaMaztherprozh
 
Preguntas Sandival Abril
Preguntas Sandival AbrilPreguntas Sandival Abril
Preguntas Sandival Abrilmafemar
 
Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]
Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]
Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]RootedCON
 
Taller Linux Parte 2
Taller Linux Parte 2Taller Linux Parte 2
Taller Linux Parte 2wilves
 
00. antoniocarlos100linux
00. antoniocarlos100linux00. antoniocarlos100linux
00. antoniocarlos100linuxjechivi
 

La actualidad más candente (13)

Ejercicios Basicos Sobre Linux
Ejercicios Basicos Sobre LinuxEjercicios Basicos Sobre Linux
Ejercicios Basicos Sobre Linux
 
Script en msdos
Script en msdosScript en msdos
Script en msdos
 
Ficheros Php
Ficheros PhpFicheros Php
Ficheros Php
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en Web
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivity
 
FICHEROS
FICHEROSFICHEROS
FICHEROS
 
Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG21
Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG21Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG21
Workshop Privesc Escalada de Privilegios Basica Linux CIBERSEG21
 
Instrucciones basicas para_c_2 - copia
Instrucciones basicas para_c_2 - copiaInstrucciones basicas para_c_2 - copia
Instrucciones basicas para_c_2 - copia
 
Preguntas Sandival Abril
Preguntas Sandival AbrilPreguntas Sandival Abril
Preguntas Sandival Abril
 
Final Linux 2
Final Linux 2Final Linux 2
Final Linux 2
 
Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]
Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]
Chema Alonso - Presentación de la FOCA v2.0 [RootedCON 2010]
 
Taller Linux Parte 2
Taller Linux Parte 2Taller Linux Parte 2
Taller Linux Parte 2
 
00. antoniocarlos100linux
00. antoniocarlos100linux00. antoniocarlos100linux
00. antoniocarlos100linux
 

Similar a PHP's FIG and PSRs

The original hacker Nro 1
The original hacker Nro 1The original hacker Nro 1
The original hacker Nro 1Jorge Brunal
 
Programación funcional con haskell
Programación funcional con haskellProgramación funcional con haskell
Programación funcional con haskellSoftware Guru
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la DebianLeonardo Cezar
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la DebianLeonardo Cezar
 
Introducción a RUST
Introducción a RUSTIntroducción a RUST
Introducción a RUSTSoftware Guru
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en phpRobert Moreira
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
Actividad 3 . funciones en php
Actividad 3 . funciones en phpActividad 3 . funciones en php
Actividad 3 . funciones en phpLeonardoPuerta2
 
Novedades en Symfony 2.3
Novedades en Symfony 2.3Novedades en Symfony 2.3
Novedades en Symfony 2.3Javier López
 

Similar a PHP's FIG and PSRs (20)

Doctrine
DoctrineDoctrine
Doctrine
 
The original hacker Nro 1
The original hacker Nro 1The original hacker Nro 1
The original hacker Nro 1
 
Bash Tips Tricks Campus
Bash Tips Tricks CampusBash Tips Tricks Campus
Bash Tips Tricks Campus
 
Programación funcional con haskell
Programación funcional con haskellProgramación funcional con haskell
Programación funcional con haskell
 
Programacion php
Programacion phpProgramacion php
Programacion php
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la Debian
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la Debian
 
Django
DjangoDjango
Django
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Introducción a RUST
Introducción a RUSTIntroducción a RUST
Introducción a RUST
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
Actividad 3 . funciones en php
Actividad 3 . funciones en phpActividad 3 . funciones en php
Actividad 3 . funciones en php
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
Novedades en Symfony 2.3
Novedades en Symfony 2.3Novedades en Symfony 2.3
Novedades en Symfony 2.3
 
Perl3 subrutinas
Perl3 subrutinasPerl3 subrutinas
Perl3 subrutinas
 
Introduccion A Groovy
Introduccion A GroovyIntroduccion A Groovy
Introduccion A Groovy
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 

Más de Javier López

Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP applicationJavier López
 
One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.Javier López
 
Slides changes symfony23
Slides changes symfony23Slides changes symfony23
Slides changes symfony23Javier López
 
Shifting gears with Composer
Shifting gears with ComposerShifting gears with Composer
Shifting gears with ComposerJavier López
 
Componentes, el arma secreta de Symfony2
Componentes, el arma secreta de Symfony2Componentes, el arma secreta de Symfony2
Componentes, el arma secreta de Symfony2Javier López
 
Slides components en
Slides components enSlides components en
Slides components enJavier López
 
Symfony y Admin Generator
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin GeneratorJavier López
 

Más de Javier López (8)

Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP application
 
One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.One commit, one release. Continuously delivering a Symfony project.
One commit, one release. Continuously delivering a Symfony project.
 
Slides changes symfony23
Slides changes symfony23Slides changes symfony23
Slides changes symfony23
 
Shifting gears with Composer
Shifting gears with ComposerShifting gears with Composer
Shifting gears with Composer
 
Componentes, el arma secreta de Symfony2
Componentes, el arma secreta de Symfony2Componentes, el arma secreta de Symfony2
Componentes, el arma secreta de Symfony2
 
Slides components en
Slides components enSlides components en
Slides components en
 
Slides componentes
Slides componentesSlides componentes
Slides componentes
 
Symfony y Admin Generator
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin Generator
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 

PHP's FIG and PSRs