SlideShare una empresa de Scribd logo
Symfony 2 CMF
Symfony 2 CMF
Por qué
Python community 2010




             http://www.flickr.com/photos/27734462@N00/4456118597
PHP community, 2010




           http://www.flickr.com/photos/27734462@N00/4456830956
http://www.flickr.com/photos/57768341@N00/3387704295
Symfony2 al rescate




              http://www.flickr.com/photos/18597080@N04/2566928348
Symfony 2 CMF
Un entorno común




            http://www.flickr.com/photos/61414741@N00/77346889Text
http://www.flickr.com/photos/10209031@N08/4542049217
http://www.flickr.com/photos/38158467@N00/83109701
Text
Los componentes de
   Symfony2 son
     genéricos
 pero Internet está
llena de contenido
Los componentes de
   Symfony2 son
     genéricos
 pero Internet está
llena de contenido
Drupal está muy bien

 si eres un usuario
Drupal está muy bien

 si eres un usuario
Vamos a intentarlo
¿TinyMCE y a correr?
No, a lo loco
Queremos...
Queremos...
Estructura en árbol
Queremos...
Estructura en árbol

Documentos sin
estructura
Queremos...
Estructura en árbol

Documentos sin
estructura

Querys para el árbol
Queremos...
Estructura en árbol

Documentos sin
estructura

Querys para el árbol

Fulltext
Queremos...
Estructura en árbol

Documentos sin
estructura

Querys para el árbol

Fulltext

Usable en hosting
compartido...
Queremos...
Estructura en árbol

Documentos sin
estructura

Querys para el árbol

Fulltext

Usable en hosting
compartido...

...pero escalable
Queremos...
Estructura en árbol

Documentos sin
estructura

Querys para el árbol

Fulltext

Usable en hosting
compartido...

...pero escalable

Que sea un estándar
Queremos...
Estructura en árbol

Documentos sin
estructura

Querys para el árbol

Fulltext

Usable en hosting
compartido...

...pero escalable

Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin
estructura

Querys para el árbol

Fulltext

Usable en hosting
compartido...

...pero escalable

Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura

Querys para el árbol

Fulltext

Usable en hosting
compartido...

...pero escalable

Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura
                       Rutas editables
Querys para el árbol

Fulltext

Usable en hosting
compartido...

...pero escalable

Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura
                       Rutas editables
Querys para el árbol
                       Miles de ellas
Fulltext

Usable en hosting
compartido...

...pero escalable

Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura
                       Rutas editables
Querys para el árbol
                       Miles de ellas
Fulltext
                       Menús
Usable en hosting
compartido...

...pero escalable

Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura
                       Rutas editables
Querys para el árbol
                       Miles de ellas
Fulltext
                       Menús
Usable en hosting
compartido...          ACL
...pero escalable

Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura
                       Rutas editables
Querys para el árbol
                       Miles de ellas
Fulltext
                       Menús
Usable en hosting
compartido...          ACL
...pero escalable      Admin panel
Que sea un estándar

...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura
                       Rutas editables
Querys para el árbol
                       Miles de ellas
Fulltext
                       Menús
Usable en hosting
compartido...          ACL
...pero escalable      Admin panel
Que sea un estándar    Editable inline
...y tenga varias
implementaciones!
Queremos...
Estructura en árbol    Versionable

Documentos sin         Traducible
estructura
                       Rutas editables
Querys para el árbol
                       Miles de ellas
Fulltext
                       Menús
Usable en hosting
compartido...          ACL
...pero escalable      Admin panel
Que sea un estándar    Editable inline
...y tenga varias      Que no haga falta
implementaciones!      saberlo todo
¿Cuánto tardaremos en hacer esa
           animalada?




                     http://www.flickr.com/photos/83476873@N00/110993877
Ya está hecha
    (O casi)
Componentes
PHPCR
el estándar
Symfony 2 CMF
API estándar


JCR “phpizado”
Estructura
Estructura
Estructura
Estructura
Estructura
paths
Estructura
node
paths types
Estructura
mixins
node
paths types
Estructura
mixins
node
paths types
propiedades


     {
         title
         text
         jcr:created
         phpcr:class
STRING    BINARY
URL       DATE
BOOLEAN   NAME
LONG      PATH
DOUBLE    WEAKREFERENCE
DECIMAL   REFERENCE
Tipos de propiedades

STRING    BINARY
URL       DATE
BOOLEAN   NAME
LONG      PATH
DOUBLE    WEAKREFERENCE
DECIMAL   REFERENCE
Symfony 2 CMF
Conexión


use JackalopeRepositoryFactoryJackrabbit as Factory;

$parameters = array(
    'jackalope.jackrabbit_uri'
        => 'http://localhost:8080/server'
);

$repository = Factory::getRepository($parameters);

$creds = new PHPCRSimpleCredentials('user','pw');
$session = $repository->login($creds, 'default');
CRUD


// Crear
$root = $session->getRootNode();
$node = $root->addNode('test', 'nt:unstructured');
// Leer
$node = $session->getNode('/test');
// Actualizar
$node->setProperty('prop', 'value');
// Eliminar
$node->remove();
Guardar las modificaciones




      $session->save();
Obtener hijos




foreach ($node as $child) {
    var_dump($child->getName());
}
Obtener hijos filtrando




foreach ($node->getNodes('di*') as $child) {
    var_dump($child->getName());
}
Consultas en SQL2

$qm = $workspace->getQueryManager();

$sql = "SELECT * FROM [nt:unstructured]
    WHERE [nt:unstructured].type = 'nav'
    AND ISDESCENDANTNODE('/some/path')
    ORDER BY score, [nt:unstructured].title";
$query = $qm->createQuery($sql, 'JCR-SQL2');
$query->setLimit($limit);
$query->setOffset($offset);
$queryResult = $query->execute();

foreach ($queryResult->getNodes() as $node) {
    var_dump($node->getPath());
}
Consultas con QOM
$qm = $workspace->getQueryManager();
$factory = $qm->getQOMFactory();

// SELECT * FROM nt:file INNER JOIN nt:folder ON
ISCHILDNODE(child, parent)
$factory->createQuery(
    $factory->join(
        $factory->selector('nt:file'),
        $factory->selector('nt:folder'),
        Constants::JCR_JOIN_TYPE_INNER,
        $factory->childNodeJoinCondition('child',
'parent')),
    null,
    array(),
    array());
Consultas con interfaz fluida


$qm = $workspace->getQueryManager();
$factory = $qm->getQOMFactory();

// SELECT * FROM nt:unstructured WHERE name NOT IS
NULL
$qb = new QueryBuilder($factory);
$qb->select($factory->selector('nt:unstructured'))
   ->where($factory->propertyExistence('name'))
   ->setFirstResult(10)
   ->setMaxResults(10)
   ->execute();
Implementaciones

   (estándar)
Doctrine
PHPCR-ODM
el object document mapper
Documentos
namespace Foo;

use DoctrineODMPHPCRMapping as PHPCR;
/** @PHPCRDocument */
class Bar
{
  /** @PHPCRId */
  public $id;

    /**
     * @PHPCRParentDocument
     */
    public $parent;

    /** @PHPCRNodename */
    public $nodename;

    /** @PHPCRString */
    public $text;

}
Referencias
/**
 * Hijo con nombre "el-logo"
 * @PHPCRChild(name="el-logo")
 */
public $logo;

/**
 * Hijos que empiecen con "a"
 * @PHPCRChildren(filter="a*")
 */
public $children;

/** @PHPCRReferenceOne */
public $reference;

/** @PHPCRReferrers */
public $referrers;
CRUD
Ya conoces la
   interfaz
CRUD
Ya conoces la
   interfaz
Versiones con ODM
// @Document(versionable="simple")
$document = $dm->find(null, $id);

// crear versión
$dm->checkpoint($document);

// obtener últimas dos versiones
$history = $dm->getAllLinearVersions($document, 2);

// obtener versión
$version = reset($history);
$pre = $dm->findVersionByName(null, $id, $version['versionname']);
echo $pre->text;

// restablecer versión
$dm->restoreVersion($pre, true);

//eliminar versión
$dm->deleteVersion($pre2);
Las versiones tienen
    mucha tela
  Pero si la ignoras no te hace daño
Las versiones tienen
    mucha tela
  Pero si la ignoras no te hace daño
Traducciones con
     ODM
Documentos multilingües
/** @PHPCRDocument(translator="attribute") */
class Article
{
    /**
     * The language this document currently is in
     * @PHPCRLocale
     */
    public $locale;

    /**
     * Untranslated property
     * @PHPCRDate
     */
    public $publishDate;

    /**
     * Translated property
     * @PHPCRString(translated=true)
     */

    public $topic;

    /**
     * Language specific image
     * @PHPCRBinary(translated=true)
     */
    public $image;
}
Crear traducción



$article = new Article();
$article->topic = 'hola';
$dm->persist($article);
$dm->bindTranslation($article, 'es');
$dm->flush();
Obtener traducción




$article = $dm->findTranslation(null, '/test', 'es');
¿A qué lenguas está traducido?




$locales = $dm->getLocalesFor($article);
MultilangContentBundle


Documentos base para contenido, rutas y
menús

Selector de lengua

Las traducciones se almacenan en nodos hijo
Rutas
El problema


El usuario quiere definir sus urls

Y quiere unos cientos de miles
Solucionado!


navigation:
    pattern: "/{url}"
    defaults: { _controller: service.controller:indexAction }
    requirements:
        url: .*
Solucionado!
DynamicRouter

Las rutas son documentos en la BD

La ruta puede especificar un controlador...

...o usar uno por defecto
DynamicRouter
symfony_cmf_routing_extra:
    dynamic:
        enabled: true
        controllers_by_alias:
            demo_alias: sandbox_main.controller:aliasAction
        controllers_by_class:
            SandboxMainBundleDocumentDemoClassContent: 
sandbox_main.controller:classAction

            SymfonyCmfBundleRoutingExtraBundleDocument
RedirectRoute: 
symfony_cmf_routing_extra.redirect_controller:redirectAction

        templates_by_class:
            SandboxMainBundleDocumentEditableStaticContent:
SandboxMainBundle:EditableStaticContent:index.html.twig
DynamicRouter
symfony_cmf_routing_extra:
    dynamic:
        enabled: true
        controllers_by_alias:
            demo_alias: sandbox_main.controller:aliasAction
        controllers_by_class:
            SandboxMainBundleDocumentDemoClassContent: 
sandbox_main.controller:classAction

            SymfonyCmfBundleRoutingExtraBundleDocument
RedirectRoute: 
symfony_cmf_routing_extra.redirect_controller:redirectAction

        templates_by_class:
            SandboxMainBundleDocumentEditableStaticContent:
SandboxMainBundle:EditableStaticContent:index.html.twig
DynamicRouter
symfony_cmf_routing_extra:
    dynamic:
        enabled: true
        controllers_by_alias:
            demo_alias: sandbox_main.controller:aliasAction
        controllers_by_class:
            SandboxMainBundleDocumentDemoClassContent: 
sandbox_main.controller:classAction

            SymfonyCmfBundleRoutingExtraBundleDocument
RedirectRoute: 
symfony_cmf_routing_extra.redirect_controller:redirectAction

        templates_by_class:
            SandboxMainBundleDocumentEditableStaticContent:
SandboxMainBundle:EditableStaticContent:index.html.twig
DynamicRouter
symfony_cmf_routing_extra:
    dynamic:
        enabled: true
        controllers_by_alias:
            demo_alias: sandbox_main.controller:aliasAction
        controllers_by_class:
            SandboxMainBundleDocumentDemoClassContent: 
sandbox_main.controller:classAction

            SymfonyCmfBundleRoutingExtraBundleDocument
RedirectRoute: 
symfony_cmf_routing_extra.redirect_controller:redirectAction

        templates_by_class:
            SandboxMainBundleDocumentEditableStaticContent:
SandboxMainBundle:EditableStaticContent:index.html.twig
ChainRouter


symfony_cmf_routing_extra:
    chain:
        routers_by_id:
            symfony_cmf_routing_extra.dynamic_router: 20
            router.default: 100
Symfony 2 CMF
Symfony 2 CMF
Symfony 2 CMF
¡Más!
MenuBundle, MultilangContentBundle
Symfony 2 CMF
BlockBundle
PhpcrAdminBundle
En resumen...
Symfony 2 CMF
Symfony 2 CMF
Participa
    adou600 (Adrien Nicolet)                •   lapistano (Bastian Feder)
•   beberlei (Benjamin Eberlei)             •   lsmith77 (Lukas K. Smith)
•   bergie (Henri Bergius)                  •   micheleorselli (Michele Orselli)
•   brki (Brian King)                       •   nacmartin (Nacho Martín)
•   chirimoya (Thomas Schedler)             •   nicam (Pascal Helfenstein)
•   chregu (Christian Stocker)              •   Ocramius (Marco Pivetta)
•   cordoval (Luis Cordova)                 •   ornicar (Thibault Duplessis)
•   damz (Damien Tournoud)                  •   piotras
•   dbu (David Buchmann)                    •   pitpit (Damien Pitard)
•   dotZoki (Zoran)                         •   robertlemke (Robert Lemke)
•   ebi (Tobias Ebnöther)                   •   rndstr (Roland Schilter)
•   iambrosi (Ismael Ambrosi)               •   Seldaek (Jordi Boggiano)
•   jakuza (Jacopo Romei)                   •   sixty-nine (Daniel Barsotti)
•   justinrainbow (Justin Rainbow)          •   uwej711 (Uwe Jäger)
•   k-fish (Karsten Dambekalns)              •   vedranzgela (Vedran Zgela)
•   krizon (Kristian Zondervan)             •   videlalvaro (Alvaro Videla)


                              http://cmf.symfony.com

                                 #symfony-cmf IRC
Gracias
Nacho Martín

nacho@limenius.com
@nacmartin

Más contenido relacionado

La actualidad más candente (7)

PPTX
Novedades de aries
lmrv
 
PPT
Curso Formacion Apache Solr
EmpathyBroker
 
PDF
Doctrine2 sf2Vigo
Ignacio Martín
 
DOC
PHP - MYSQL
asir22012
 
PPT
PERSISTENCIA BASADA EN ARCHIVOS
Darwin Durand
 
PDF
Introduction to linux for bioinformatics
Alberto Labarga
 
Novedades de aries
lmrv
 
Curso Formacion Apache Solr
EmpathyBroker
 
Doctrine2 sf2Vigo
Ignacio Martín
 
PHP - MYSQL
asir22012
 
PERSISTENCIA BASADA EN ARCHIVOS
Darwin Durand
 
Introduction to linux for bioinformatics
Alberto Labarga
 

Destacado (20)

PPTX
Charte et défis...
Guy Drouin
 
PDF
Création d'entreprise les clés du succès - Les Entreprenariales 2014
CEEI NCA
 
PDF
Angers Auto-Moto numero 2 - été 2013
nantes-auto-moto
 
PDF
Nouvelle - Calédonie
sarahbelalia
 
DOCX
Poème inédit parole au poète
abdelmalek aghzaf
 
PPTX
Présentation ShoreTel lors du Waycom Business Meeting du 11/06/15
Waycom
 
PDF
[What's next ? Place à l'entreprise créative !] Le monde change, les stratégi...
TheCreativists
 
PPTX
Présentation du thème
Wiki Info Systeme
 
PDF
Que choisir Enquête sur le prix des parkings
Webm Aster
 
PDF
L’échelle visuelle analogique un outil commun en équipe pluridisciplinaire.
Réseau Pro Santé
 
PPS
Una bella mujer JULIA URBIÑA
Benito Peñate
 
PDF
Presentation THE PLACE TO DRESS
theplacetodress
 
PPTX
Los viajes de pocoyo , patricio y bob. alejandro y pedro
yanete
 
PDF
Ene serpent blesse
Ilyas Qadri Ziaee
 
PPTX
MSDevMtl introduction au dev SharePoint online, office et office 365
Vincent Biret
 
PDF
La salle ventadour
Histoires2Paris
 
PDF
Calendrier P1 à P2B
benjaave
 
DOCX
Classement général Pronodix
benjaave
 
PDF
I convocatoria matemática x año curso 2015
Jorge Umaña
 
Charte et défis...
Guy Drouin
 
Création d'entreprise les clés du succès - Les Entreprenariales 2014
CEEI NCA
 
Angers Auto-Moto numero 2 - été 2013
nantes-auto-moto
 
Nouvelle - Calédonie
sarahbelalia
 
Poème inédit parole au poète
abdelmalek aghzaf
 
Présentation ShoreTel lors du Waycom Business Meeting du 11/06/15
Waycom
 
[What's next ? Place à l'entreprise créative !] Le monde change, les stratégi...
TheCreativists
 
Présentation du thème
Wiki Info Systeme
 
Que choisir Enquête sur le prix des parkings
Webm Aster
 
L’échelle visuelle analogique un outil commun en équipe pluridisciplinaire.
Réseau Pro Santé
 
Una bella mujer JULIA URBIÑA
Benito Peñate
 
Presentation THE PLACE TO DRESS
theplacetodress
 
Los viajes de pocoyo , patricio y bob. alejandro y pedro
yanete
 
Ene serpent blesse
Ilyas Qadri Ziaee
 
MSDevMtl introduction au dev SharePoint online, office et office 365
Vincent Biret
 
La salle ventadour
Histoires2Paris
 
Calendrier P1 à P2B
benjaave
 
Classement général Pronodix
benjaave
 
I convocatoria matemática x año curso 2015
Jorge Umaña
 
Publicidad

Similar a Symfony 2 CMF (20)

ODP
ElasticSearch: la tenés atroden Google
Mariano Iglesias
 
KEY
JRuby al Rescate de J2EE
Jorge Alberto Rodríguez Suárez
 
PDF
Tecnologia Aplicaciones Web
Zamantha Gonzalez Universidad Nacional Abierta
 
PDF
Tutorial MVC - Zenphp - Programador PHP
Juan Belón Pérez
 
PDF
José Ramón Palanco - NoSQL Security [RootedCON 2011]
RootedCON
 
PDF
Desymfony 2011 - Twig
Javier Eguiluz
 
PDF
Joinea - mongoDB en php y Symfony2
sergiovier
 
PDF
[El comercio]php zend framework (speech)
Ernesto Anaya
 
PPTX
Symfony, cloud computing y webs scalables - decharlas
Decharlas
 
PPTX
Symfony, cloud computing y web escalables
Asier Marqués
 
PDF
Servicios web
Alberto Molina Coballes
 
PDF
Servicios Web Rest con Spring MVC
Vortexbird
 
ODP
Taller introduccion symfony2
Mario IC
 
PDF
Clase 2 conceptos fundamentales
hydras_cs
 
PDF
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 
PDF
Servicios Rest con Jersey
Vortexbird
 
PDF
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
PPTX
Cormo Framework
Germán Peraferrer
 
PPTX
Germán Peraferrer: Cormo Framework
Grupo PHP Argentina
 
PDF
1 intro php
Carlos A. Iglesias
 
ElasticSearch: la tenés atroden Google
Mariano Iglesias
 
JRuby al Rescate de J2EE
Jorge Alberto Rodríguez Suárez
 
Tutorial MVC - Zenphp - Programador PHP
Juan Belón Pérez
 
José Ramón Palanco - NoSQL Security [RootedCON 2011]
RootedCON
 
Desymfony 2011 - Twig
Javier Eguiluz
 
Joinea - mongoDB en php y Symfony2
sergiovier
 
[El comercio]php zend framework (speech)
Ernesto Anaya
 
Symfony, cloud computing y webs scalables - decharlas
Decharlas
 
Symfony, cloud computing y web escalables
Asier Marqués
 
Servicios Web Rest con Spring MVC
Vortexbird
 
Taller introduccion symfony2
Mario IC
 
Clase 2 conceptos fundamentales
hydras_cs
 
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 
Servicios Rest con Jersey
Vortexbird
 
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
Cormo Framework
Germán Peraferrer
 
Germán Peraferrer: Cormo Framework
Grupo PHP Argentina
 
1 intro php
Carlos A. Iglesias
 
Publicidad

Más de Ignacio Martín (17)

PDF
Elixir/OTP for PHP developers
Ignacio Martín
 
PDF
Introduction to React Native Workshop
Ignacio Martín
 
PDF
Server side rendering with React and Symfony
Ignacio Martín
 
PDF
Symfony 4 Workshop - Limenius
Ignacio Martín
 
PDF
Server Side Rendering of JavaScript in PHP
Ignacio Martín
 
PDF
Extending Redux in the Server Side
Ignacio Martín
 
PDF
Redux Sagas - React Alicante
Ignacio Martín
 
PDF
React Native Workshop - React Alicante
Ignacio Martín
 
PDF
Asegurando APIs en Symfony con JWT
Ignacio Martín
 
PDF
Redux saga: managing your side effects. Also: generators in es6
Ignacio Martín
 
PDF
Integrating React.js with PHP projects
Ignacio Martín
 
PDF
Introduction to Redux
Ignacio Martín
 
PDF
Keeping the frontend under control with Symfony and Webpack
Ignacio Martín
 
PDF
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Ignacio Martín
 
PDF
Adding Realtime to your Projects
Ignacio Martín
 
PDF
Symfony & Javascript. Combining the best of two worlds
Ignacio Martín
 
PDF
Presentacion git
Ignacio Martín
 
Elixir/OTP for PHP developers
Ignacio Martín
 
Introduction to React Native Workshop
Ignacio Martín
 
Server side rendering with React and Symfony
Ignacio Martín
 
Symfony 4 Workshop - Limenius
Ignacio Martín
 
Server Side Rendering of JavaScript in PHP
Ignacio Martín
 
Extending Redux in the Server Side
Ignacio Martín
 
Redux Sagas - React Alicante
Ignacio Martín
 
React Native Workshop - React Alicante
Ignacio Martín
 
Asegurando APIs en Symfony con JWT
Ignacio Martín
 
Redux saga: managing your side effects. Also: generators in es6
Ignacio Martín
 
Integrating React.js with PHP projects
Ignacio Martín
 
Introduction to Redux
Ignacio Martín
 
Keeping the frontend under control with Symfony and Webpack
Ignacio Martín
 
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Ignacio Martín
 
Adding Realtime to your Projects
Ignacio Martín
 
Symfony & Javascript. Combining the best of two worlds
Ignacio Martín
 
Presentacion git
Ignacio Martín
 

Último (20)

PDF
Nueva marcacion de punzones superiores.pdf
fapeva1977
 
PPTX
Definicionesbasicas (1).pptxNNNNNNNNNNNNNNNNN
LuzMaryMoreyraQuispe
 
PDF
ACTOS Y CONDICIONES INSEvvvvvvvvvvGURAS.pdf
JuanCarlosMoreno727959
 
PDF
Adm_Financiera_Costos.pdf teoriaaaaaaaaaaa
Rodrigo547340
 
PPTX
Introducción a la Probabilidad y Técnicas de Conteo.pptx
wilsonosorio20
 
PPTX
La resolución de conflictos laborales.pptx
GustavoCampana9
 
PPTX
power point sobre la contaminmacion ambiental
clementehuachoruntoy
 
PDF
Manejo agronomico Arandano sierra y gestion de calidad
alansalasprojectspro
 
PPTX
SEMINARIO PARA LA SOLUCIÃ_N DE CONFLICTOS LABORALES.pptx
CitlaliOrtiz5
 
PPTX
Aplicación del Lean Management en la Logística
fsa2025
 
PPTX
PPT_ANÁLISIS Y DISEÑO DE SISTEMAS -ISE-604_SEM-04_2025-1.pptx
gina huertas
 
PPTX
LIDERAZGO, EMPRENDIMIENTO E INNOVACIÓN talle 3 (1).pptx
NiraAviles
 
PPTX
ppt de ejemplo necesario para una clase didactica de ingles
OSMANYHernndez
 
PPTX
starbucks ppt promotional ppt video mpeg4
ie25verajulio
 
PPTX
Hosp. presen..pptx00dsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwkolskclsmcejfxkcmsejfj...
JosiasDiazCuevas
 
DOCX
Trabajo_Practico_Criptomonedas_Secundaria (1).docx
DiagoNahuelOszust
 
PPT
mediacion de oiblaciones de todas las cocoss
angieguerrero685610
 
PPTX
397425602-Ministerio-de-Vivienda-Construccion-y-Saneamiento-EXPO-BELLI.pptx
malbercamina
 
PDF
PORTAFOLIO__4__stuart-mill-john, fragmento Limites de la autoridad y el indiv...
DerivadaseIntegrales
 
PPTX
Sistema Financiero No Bancario.pptxsjdond
gmaadm100
 
Nueva marcacion de punzones superiores.pdf
fapeva1977
 
Definicionesbasicas (1).pptxNNNNNNNNNNNNNNNNN
LuzMaryMoreyraQuispe
 
ACTOS Y CONDICIONES INSEvvvvvvvvvvGURAS.pdf
JuanCarlosMoreno727959
 
Adm_Financiera_Costos.pdf teoriaaaaaaaaaaa
Rodrigo547340
 
Introducción a la Probabilidad y Técnicas de Conteo.pptx
wilsonosorio20
 
La resolución de conflictos laborales.pptx
GustavoCampana9
 
power point sobre la contaminmacion ambiental
clementehuachoruntoy
 
Manejo agronomico Arandano sierra y gestion de calidad
alansalasprojectspro
 
SEMINARIO PARA LA SOLUCIÃ_N DE CONFLICTOS LABORALES.pptx
CitlaliOrtiz5
 
Aplicación del Lean Management en la Logística
fsa2025
 
PPT_ANÁLISIS Y DISEÑO DE SISTEMAS -ISE-604_SEM-04_2025-1.pptx
gina huertas
 
LIDERAZGO, EMPRENDIMIENTO E INNOVACIÓN talle 3 (1).pptx
NiraAviles
 
ppt de ejemplo necesario para una clase didactica de ingles
OSMANYHernndez
 
starbucks ppt promotional ppt video mpeg4
ie25verajulio
 
Hosp. presen..pptx00dsdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwkolskclsmcejfxkcmsejfj...
JosiasDiazCuevas
 
Trabajo_Practico_Criptomonedas_Secundaria (1).docx
DiagoNahuelOszust
 
mediacion de oiblaciones de todas las cocoss
angieguerrero685610
 
397425602-Ministerio-de-Vivienda-Construccion-y-Saneamiento-EXPO-BELLI.pptx
malbercamina
 
PORTAFOLIO__4__stuart-mill-john, fragmento Limites de la autoridad y el indiv...
DerivadaseIntegrales
 
Sistema Financiero No Bancario.pptxsjdond
gmaadm100
 

Symfony 2 CMF