SlideShare una empresa de Scribd logo
Forms!
1
Monday, October 14, 13
Symfony Forms
•

Tipos de formularios

2
Monday, October 14, 13
Symfony Forms
•
•

Tipos de formularios
Formatos de datos

3
Monday, October 14, 13
Symfony Forms
•
•
•

Tipos de formularios
Formatos de datos
Creación

4
Monday, October 14, 13
Symfony Forms
•
•
•
•

Tipos de formularios
Formatos de datos
Creación
Renderizado

5
Monday, October 14, 13
Symfony Forms
•
•
•
•
•

Tipos de formularios
Formatos de datos
Creación
Renderizado
Submit

6
Monday, October 14, 13
Symfony Forms
•
•
•
•
•
•

Tipos de formularios
Formatos de datos
Creación
Renderizado
Submit
Eventos

7
Monday, October 14, 13
Objetivo

http://www.flickr.com/photos/edgarjediza/2404477249/
Monday, October 14, 13
Y no...

http://fun.mee.is/wp-content/uploads/funny-sleep-positon-01.jpg
Monday, October 14, 13
Tipos de formularios

10
Monday, October 14, 13
Tipos de formularios
•

Describen el elemento a mostrar

11
Monday, October 14, 13
Tipos de formularios
•
•

Describen el elemento a mostrar
Existen solamente una vez en la aplicación

12
Monday, October 14, 13
Tipos de formularios
•
•
•

Describen el elemento a mostrar
Existen solamente una vez en la aplicación
Existe un tipo base: form

13
Monday, October 14, 13
Tipos de formularios
•
•
•
•

Describen el elemento a mostrar
Existen solamente una vez en la aplicación
Existe un tipo base: form
Se pueden heredar

14
Monday, October 14, 13
Tipos de formularios
•
•
•
•
•

Describen el elemento a mostrar
Existen solamente una vez en la aplicación
Existe un tipo base: form
Se pueden heredar
Inyectar dependencias si y solo si son comunes a todas las
instancias

15
Monday, October 14, 13
Tipos de formularios
•
•
•
•
•

Describen el elemento a mostrar

•

Symfony incorpora muchos campos built-in

Existen solamente una vez en la aplicación
Existe un tipo base: form
Se pueden heredar
Inyectar dependencias si y solo si son comunes a todas las
instancias

16
Monday, October 14, 13
Tipos de formularios
Grupos de campos

Campos texto
text

textarea

integer

money

number

password

percent

collection

email
search

Campos button
button

url

checkbox
datetime

time

choice

entity

country

language

locale

timezone

hidden

birthday
Campos choice

currency
17
Monday, October 14, 13

reset

submit

file

radio

Otros campos

Campos date & time
date

repeated
Tipos de formularios
Tipos de formularios propios
<?php
namespace IsmaAmbrosiMyBundleForm;
use SymfonyComponentFormAbstractType;
class MyFormType extends AbstractType
{
    public function getName()
    {
        return 'my_form';
    }
}

18
Monday, October 14, 13
Tipos de formularios
Tipos de formularios propios
<?php
namespace IsmaAmbrosiMyBundleForm;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
class MyFormType extends AbstractType
{
    /**
     * Construye el formulario
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        # Agrega un campo text para ingresar el nombre
        $builder->add('name', 'text');
    }
    public function getName(){...}
}

Monday, October 14, 13
Tipos de formularios
Tipos de formularios propios asociados a una entidad
<?php
namespace IsmaAmbrosiMyBundleForm;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentOptionsResolverOptionsResolverInterface;
class MyFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name');
        $builder->add('last_name');
    }
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array('data_class' => 'IsmaAmbrosiMyBundleEntityUser'));
    }
    public function getName(){...}
}

Monday, October 14, 13
Tipos de formularios
Tipos de formularios propios asociados a una entidad
<?php

<?php

namespace IsmaAmbrosiMyBundleForm;

namespace IsmaAmbrosiMyBundleEntity;

use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentOptionsResolverOptionsResolverInterface;

use DoctrineORMMapping as ORM;

/**
class MyFormType extends AbstractType
 * @ORMEntity
{
 */
    public function buildForm(FormBuilderInterface $builder, array $options)
class User
    {
{
        $builder->add('name');
    /**
        $builder->add('last_name');
    }
     * @ORMColumn(type="string", length=100)
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    private $name;
    {
        $resolver->setDefaults(array('data_class' => 'IsmaAmbrosiMyBundleEntityUser'));
    /**
    }
    public function getName(){...}
}

Monday, October 14, 13

     * @ORMColumn(type="string", length=100)
     */
    private $lastName;
}
Tipos de formularios
Tipos de formularios propios

¡Se pueden crear como servicios!

Monday, October 14, 13
Tipos de formularios
Tipos de formularios propios como servicios

•

Monday, October 14, 13

Puedo inyectar dependencias
Tipos de formularios
Tipos de formularios propios como servicios

•
•

Monday, October 14, 13

Puedo inyectar dependencias
Puedo configurar un logger exclusivo
Tipos de formularios
Tipos de formularios propios como servicios

•
•
•

Monday, October 14, 13

Puedo inyectar dependencias
Puedo configurar un logger exclusivo
Puedo testear mi aplicacion sin depender de ellos
Tipos de formularios
Tipos de formularios propios como servicios

•
•
•
•

Monday, October 14, 13

Puedo inyectar dependencias
Puedo configurar un logger exclusivo
Puedo testear mi aplicacion sin depender de ellos
Y más...
Instancias de Formularios
•
•
•

Existen una o más veces en la aplicación
Los datos pueden cambiar luego de su creación
Son creados a partir del tipo de formulario

27
Monday, October 14, 13
Formatos de datos

28
Monday, October 14, 13
Formatos de datos

• Formato del modelo (model format)
• Formato de la vista (view format)
• Formato normalizado (normalized format)
29
Monday, October 14, 13
Formatos de datos
Model format

Formato que existe en nuestro modelo.
Ej: Tal cual querémos que sea persistido por nuestro ORM

30
Monday, October 14, 13
Formatos de datos
View format

Tal cual va a ser mostrado al usuario en los elementos de nuestra vista.

Ej: Un objeto DateTime se transforma en un array("year" => 2013, "month" => 10, "day" => 12)

31
Monday, October 14, 13
Formatos de datos
Normalized format

Formato intermedio entre la vista y el modelo.

Se recomienda que este formato guarde cuanta información sea posible.

32
Monday, October 14, 13
Formatos de datos
Al crear el formulario

Model data

Normalized
data

33
Monday, October 14, 13

View data
Formatos de datos
Al crear el formulario

Model data

Normalized
data

34
Monday, October 14, 13

View data
Formatos de datos
Submit

Model data

Normalized
data

35
Monday, October 14, 13

View data
Formatos de datos
Submit

new User

Model data

Normalized
data

36
Monday, October 14, 13

View data

$_POST
Creación

37
Monday, October 14, 13
Creación
<?php
namespace IsmaAmbrosiMyBundleController;
use IsmaAmbrosiMyBundleFormMyFormType;
use SymfonyBundleFrameworkBundleControllerController;
class DefaultController extends Controller
{
    public function indexAction()
    {
        $form = $this->createForm(new MyFormType(), $data, $options);
        # MyFormType definido como servicio
        $form = $this->createForm('my_form_type', $data, $options);
    }
}

38
Monday, October 14, 13
Creación
public function indexAction()
{
    $form = $this->createForm(new MyFormType(), $data, $options);
    # MyFormType definido como servicio
    $form = $this->createForm('my_form_type', $data, $options);
}

public function indexAction()
{
    $form = $this->get('form.factory')->create(new MyFormType(), $data, $options);
    # MyFormType definido como servicio
    $form = $this->get('form.factory')->create('my_form_type', $data, $options);
}

39
Monday, October 14, 13
Renderizado

40
Monday, October 14, 13
Renderizado
Creamos la vista del formulario para enviarla al template
<?php
namespace IsmaAmbrosiMyBundleController;
use IsmaAmbrosiMyBundleFormMyFormType;
use SymfonyBundleFrameworkBundleControllerController;
class DefaultController extends Controller
{
    public function indexAction()
    {
        $form = $this->createForm(new MyFormType(), $data, $options);
        return $this->render('IsmaAmbrosiMyBundle:Default:index.html.twig', array(
            'form' => $form->createView()
        ));
    }
}
41
Monday, October 14, 13
Renderizado
Mostrando el formulario dentro de un tag form
<form action="/post" method="post">
{{ form_widget(form) }}
<button type="submit">Submit</button>
</form>

42
Monday, October 14, 13
Renderizado
Mostrando cada elemento del formulario
<form action="/post" method="post">
{{ form_row(form.name) }}
{{ form_row(form.last_name) }}
{{ form_rest(form) }}
<button type="submit">Submit</button>
</form>

43
Monday, October 14, 13
Renderizado
Mostrando cada elemento del formulario
<form action="/post" method="post">
{{ form_row(form.name) }}
{{ form_row(form.last_name) }}
{{ form_rest(form) }}
<button type="submit">Submit</button>
</form>

44
Monday, October 14, 13

Muestra los elementos
restantes
Renderizado
Utilizando las funciones de Symfony
{{ form_start(form) }}
{{ form_errors(form) }}
<div>
{{ form_label(form.name) }}
{{ form_errors(form.name) }}
{{ form_widget(form.name) }}
</div>
<div>
{{ form_label(form.last_name) }}
{{ form_errors(form.last_name) }}
{{ form_widget(form.last_name) }}
</div>
<button type="submit">Submit</button>
{{ form_end(form) }}

45
Monday, October 14, 13
Renderizado
Utilizando las funciones de Symfony
{{ form_start(form) }}
{{ form_errors(form) }}
public function indexAction()
<div>
{
{{ form_label(form.name) }}
    $form = $this->createForm(new MyFormType(), $data, array(
{{ form_errors(form.name) }}
        'action' => '/post', # URL donde el formulario va a ser enviado
{{ form_widget(form.name) }}
        'method' => 'POST' # PUT, DELETE, PATCH, GET
</div>
    ));
<div>
    return $this->render('IsmaAmbrosiMyBundle:Default:index.html.twig', array(
{{ form_label(form.last_name) }}
'form' => $form->createView()
{{ form_errors(form.last_name) }}
));
{{ form_widget(form.last_name) }}
}
</div>
<button type="submit">Submit</button>
{{ form_end(form) }}

46
Monday, October 14, 13
Renderizado
Utilizando templates php
<form action="/post" method="post">
<?php echo $view['form']->row($form['name']) ?>
    <?php echo $view['form']->row($form['last_name']) ?>
<button type="submit">Submit</button>
</form>

47
Monday, October 14, 13
Submit

48
Monday, October 14, 13
Submit
Submit

49
Monday, October 14, 13
Submit
Submit

Bind

50
Monday, October 14, 13
Submit
Submit

Bind

Validación

51
Monday, October 14, 13
Submit
Éxito

Submit

Bind

Validación

Error

52
Monday, October 14, 13
Submit
Éxito

Submit

Bind

Validación

Persistencia del modelo
Mensaje de éxito
Status 2xx

Error
Mensaje de error
Status 400
53
Monday, October 14, 13
Submit
¿Código?

54
Monday, October 14, 13
Submit
    public function postAction(Request $request)
    {
        $form = $this->createForm(new MyFormType(), $data, $options);
        $form->handleRequest($request);
        if (!$form->isValid()) {
            throw new BadRequestHttpException('Error');
        }
        # Persistir entidades
        # Mensajes
        # etc.
        return new Response('Success');
    }

55
Monday, October 14, 13
Submit
submit
bind

error

    public function postAction(Request $request)
    {
        $form = $this->createForm(new MyFormType(), $data, $options);
        $form->handleRequest($request);
        if (!$form->isValid()) {
            throw new BadRequestHttpException('Error');
        }
        # Persistir entidades
        # Mensajes
        # etc.

éxito

        return new Response('Success');
    }

56
Monday, October 14, 13

validación
Submit
public function postAction(Request $request)
{
    $form = $this->createForm(new MyFormType());
    $form->handleRequest($request);
    if (!$form->isValid()) {
        $this->render('IsmaAmbrosiMyBundle:Default:index.html.twig', array(
            'form' => $form->createView()
        ));
    }
    $manager = $this->getDoctrine()->getManager();
    $manager->persist($form->getData());
    $manager->flush();
    return $this->redirect('/');
}

57
Monday, October 14, 13
Submit
Internamente crea
public function postAction(Request $request)
la instancia de User
{
    $form = $this->createForm(new MyFormType());
    $form->handleRequest($request);
    if (!$form->isValid()) {
        $this->render('IsmaAmbrosiMyBundle:Default:index.html.twig', array(
            'form' => $form->createView()
        ));
    }
    $manager = $this->getDoctrine()->getManager();
    $manager->persist($form->getData());
    $manager->flush();
    return $this->redirect('/');
}

58
Monday, October 14, 13

Obtiene la entidad
Eventos

59
Monday, October 14, 13
Eventos
•
•

Permiten construir el formulario basandose en los datos

•

Permiten configurar el modelo en base a los datos recibidos

Permiten construir el formulario basandose en el estado de la
aplicación

60
Monday, October 14, 13
Eventos
Eventos lanzados por el EventDispatcher

•
•
•
•
•

PRE_SET_DATA (form.pre_set_data)
POST_SET_DATA (form.post_set_data)
PRE_SUBMIT (form.submit)
SUBMIT (form.bind)
POST_SUBMIT (form.post_bind)

61
Monday, October 14, 13
Eventos
PRE_SET_DATA

•

Permite modificar los datos asignados al formulario desde
nuestro modelo.

•
•

Permite modificar el formulario en base a los datos del modelo
Permite modificar el formulario en base al estado de mi
aplicación

62
Monday, October 14, 13
Eventos
PRE_BIND

Nos permite acceder y modificar los datos tal cual
fueron enviados por el navegador en el submit.

63
Monday, October 14, 13
Eventos
BIND

Nos permite modificar los datos en su estado
normalizado.

64
Monday, October 14, 13
Eventos
POST_BIND

Nos permite acceder a los datos de la vista y modificar
los datos que ya fueron asignados al modelo.

65
Monday, October 14, 13
Eventos
Al crear el formulario

Model data

Normalized
data

POST_SET_DATA

PRE_SET_DATA

66
Monday, October 14, 13

View data
Eventos
Submit

Model data

POST_BIND

Normalized
data

BIND

67
Monday, October 14, 13

View data

PRE_BIND
Resumen

68
Monday, October 14, 13
Resumen
Vista
1. Creamos el formulario basado en un tipo
2. Creamos la vista para ese formulario
3. Mostramos el template

69
Monday, October 14, 13
Resumen
Submit
1. Creamos el formulario basado en un tipo
2. Enlazamos el $request
3. Validamos
1. Error
1. Mostramos el formulario indicando errores
2. Retornamos STATUS 400
2. Éxito
1. Persistimos entidades
2. Mensaje de éxito (Ej: Redirección a un listado)

70
Monday, October 14, 13
¿Preguntas?

71
Monday, October 14, 13
¡Gracias!

72
Monday, October 14, 13

Más contenido relacionado

Último

Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 

Último (20)

Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Symfony forms