Symfony2: estudo de caso IngressoPrático
|
|
- Beverly Campbell
- 8 years ago
- Views:
Transcription
1 Symfony2: estudo de caso IngressoPrático
2 Symfony2 is a reusable set of standalone, decoupled and cohesive PHP components that solve common web development problems Fabien Potencier, What is Symfony2? 2/73
3 Then, based on these components, Symfony2 is also a full-stack framework Fabien Potencier, What is Symfony2? 3/73
4 Eriksen Costa Desenvolvedor PHP Contribuidor Symfony2 Co-mantenedor Drüpen Trabalha na Infranology Blog: ifgy.co/ecp 4/73
5 infranology.com.br (ifgy.co) Power house web Drupal, Symfony, Solr e Hadoop 5/73
6 Agenda IngressoPrático Por que Symfony2? O projeto Mapa de assentos Conclusões 6/73
7 7/73
8 8/73
9 Por que Symfony2? Padrões Simplicidade Testabilidade Dependency Injection 9/73
10 Dependency Injection (DI) is a design pattern in object-oriented computer programming whose purpose is to improve testability of, and simplify deployment of components in very large software systems Wikipedia, Dependency Injection 10/73
11 <?php class ListManager protected $db; public function construct() $this->db = new PDO('mysql:host=localhost;dbname=app', 'user', 'password'); public function delete($id) return $this->db->query( 'DELETE FROM list WHERE id = '. $this->db->quote($id, PDO::PARAM_INT) ); //... $manager = new ListManager(); 11/73
12 <?php class ListManager protected $db; public function construct() $this->db = new PDO(DB_PDO_DSN, DB_PDO_USER, DB_PDO_PASS); //... define('db_pdo_dsn', 'mysql:host=localhost;dbname=app'); define('db_pdo_user', 'user'); define('db_pdo_pass', 'password'); $manager = new ListManager(); 12/73
13 <?php class ListManager protected $db; public function construct(array $db_params) $this->db = new PDO( $db_params['dsn'], $db_params['user'], $db_params['pass'] ); //... $manager = new ListManager(array( 'dsn' => 'mysql:host=localhost;dbname=app', 'user' => 'user', 'pass' => 'password', )); 13/73
14 <?php class ListManager protected $db; public function construct($db) $this->db = $db; //... $db = new PDO('mysql:host=localhost;dbname=app', 'user', 'password'); $manager = new ListManager($db); 14/73
15 Put simply, a Service is any PHP object that performs some sort of global task Symfony Documentation, Service Container 15/73
16 A Service Container (or Dependency Injection Container) is simply a PHP object that manages the instantiation of services Symfony Documentation, Service Container 16/73
17 # app/config/services.yml services: my_db: class: \PDO arguments: [ 'mysql:host=localhost;dbname=app', 'user', 'password' ] my_list_manager: class: Foo\BarBundle\Service\ListManager arguments: ] 17/73
18 <?php namespace Foo\BarBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class ListController extends Controller public function deleteaction($id) $manager = $this->container->get('my_list_manager'); $manager->delete($id); //... 18/73
19 19/73
20 Projeto Gestão Estimativa, equipe Bundles e bibliotecas usadas 20/73
21 21/73
22 22/73
23 23/73
24 24/73
25 25/73
26 300 horas/homem 2 desenvolvedores (part-time) 1 designer (terceirizado) 26/73
27 2 entregas Agenda do cliente: Pré-cadastro Vendas com cota Vendas sem cota 27/73
28 Bundles, bibliotecas FOSUserBundle LiipFunctionalTestBundle KnpPaginatorBundle (+ ZF2 Paginator) KnpMenuBundle Doctrine ORM 2.1 Doctrine Fixtures Doctrine Migrations Gedmo Doctrine Extensions (Timestampable) 28/73
29 29/73
30 Mapa de assentos Requisito do projeto Rápido Cores intuitivas 30/73
31 31/73
32 Extensão Twig 2 funções: seatmap_render, seatmap_render_item 1 token parser: seatmap_theme 1 template base 1 template extra 32/73
33 # IngressoPratico/VenueBundle/Resources/SeatMap/base_layout.html.twig # % block seatmap % <div class="seat-map"> % for item in items % seatmap_render_item(item, variables) % endfor % </div> % endblock seatmap % % block seatmap_seat % % spaceless % seatmap_render_seattype_css(item, image_dir) % if item.status % % set status = ' ' ~ item.status % % endif % % set styles = seatmap_render_item_style(item, image_dir) % <div class="seat status "% if styles % styles raw % endif %> seatmap_render_item(item.content) </div> % endspaceless % % endblock seatmap_seat % #... # 33/73
34 # IngressoPratico/VenueBundle/Resources/SeatMap/base_layout.html.twig # % block seatmap % <div class="seat-map"> % for item in items % seatmap_render_item(item, variables) % endfor % </div> % endblock seatmap % % block seatmap_seat % % spaceless % seatmap_render_seattype_css(item, image_dir) % if item.status % % set status = ' ' ~ item.status % % endif % % set styles = seatmap_render_item_style(item, image_dir) % <div class="seat status "% if styles % styles raw % endif %> seatmap_render_item(item.content) </div> % endspaceless % % endblock seatmap_seat % #... # 34/73
35 # IngressoPratico/VenueBundle/Resources/SeatMap/base_layout.html.twig # % block seatmap % <div class="seat-map"> % for item in items % seatmap_render_item(item, variables) % endfor % </div> % endblock seatmap % % block seatmap_seat % % spaceless % seatmap_render_seattype_css(item, image_dir) % if item.status % % set status = ' ' ~ item.status % % endif % % set styles = seatmap_render_item_style(item, image_dir) % <div class="seat status "% if styles % styles raw % endif %> seatmap_render_item(item.content) </div> % endspaceless % % endblock seatmap_seat % #... # 35/73
36 <?php // IngressoPratico/VenueBundle/Twig/SeatMapExtension.php namespace IngressoPratico\VenueBundle\Twig; use IngressoPratico\VenueBundle\Entity\SeatMap; use IngressoPratico\VenueBundle\Entity\Plottable; class SeatMapExtension extends \Twig_Extension public function construct($templates) $this->templates = is_string($templates)? array($templates) : $templates; public function getfunctions() return array( 'seatmap_render' => new \Twig_Function_Method( $this, 'renderseatmap', array('is_safe' => array('html'))), 'seatmap_render_item' => new \Twig_Function_Method( $this, 'renderseatmapitem', array('is_safe' => array('html'))), ); public function gettokenparsers() return array(new SeatMapThemeTokenParser()); //... 36/73
37 <?php // IngressoPratico/VenueBundle/Twig/SeatMapExtension.php namespace IngressoPratico\VenueBundle\Twig; use IngressoPratico\VenueBundle\Entity\SeatMap; use IngressoPratico\VenueBundle\Entity\Plottable; class SeatMapExtension extends \Twig_Extension public function construct($templates) $this->templates = is_string($templates)? array($templates) : $templates; public function getfunctions() return array( 'seatmap_render' => new \Twig_Function_Method( $this, 'renderseatmap', array('is_safe' => array('html'))), 'seatmap_render_item' => new \Twig_Function_Method( $this, 'renderseatmapitem', array('is_safe' => array('html'))), ); public function gettokenparsers() return array(new SeatMapThemeTokenParser()); //... 37/73
38 <?php class SeatMapExtension extends \Twig_Extension public function renderseatmap(seatmap $seatmap, array $variables = array()) return $this->render('seatmap', array( 'items' => $seatmap->getitems(), 'variables' => $variables, )); public function renderseatmapitem(plottable $item, array $variables = array()) $variables = array_merge(array('item' => $item), $variables); return $this->render($item->gettypename(), $variables); private function render($section, array $variables) if ($section!= 'seatmap') $section = 'seatmap_'.$section; $templates = $this->gettemplates(); if (isset($templates[$section])) return $templates[$section]->renderblock($section, $variables); return null; 38/73
39 <?php class SeatMapExtension extends \Twig_Extension public function renderseatmap(seatmap $seatmap, array $variables = array()) return $this->render('seatmap', array( 'items' => $seatmap->getitems(), 'variables' => $variables, )); public function renderseatmapitem(plottable $item, array $variables = array()) $variables = array_merge(array('item' => $item), $variables); return $this->render($item->gettypename(), $variables); private function render($section, array $variables) if ($section!= 'seatmap') $section = 'seatmap_'.$section; $templates = $this->gettemplates(); if (isset($templates[$section])) return $templates[$section]->renderblock($section, $variables); return null; 39/73
40 % block content % <ul> <li> venue.name </li> <li> venue.address </li> </ul> % for seatmap in venue.seatmaps % % seatmap_render(venue.seatmap) % % endfor % % endblock % 40/73
41 # app/config/services.yml services: seatmap.twig.extension: class: IngressoPratico\VenueBundle\Twig\SeatMapExtension arguments: [ 'IngressoPraticoVenueBundle:SeatMap:base_layout.html.twig' ] tags: - name: twig.extension 41/73
42 # app/config/services.yml services: seatmap.twig.extension: class: IngressoPratico\VenueBundle\Twig\SeatMapExtension arguments: [ 'IngressoPraticoVenueBundle:SeatMap:base_layout.html.twig' ] tags: - name: twig.extension 42/73
43 # IngressoPratico/VenueBundle/Resources/SeatMap/base_layout.html.twig # % block seatmap % <div class="seat-map"> % for item in items % seatmap_render_item(item, variables) % endfor % </div> % endblock seatmap % % block seatmap_seat % % spaceless % seatmap_render_seattype_css(item, image_dir) % if item.status % % set status = ' ' ~ item.status % % endif % % set styles = seatmap_render_item_style(item, image_dir) % <div class="seat status "% if styles % styles raw % endif %> seatmap_render_item(item.content) </div> % endspaceless % % endblock seatmap_seat % #... # 43/73
44 44/73
45 45/73
46 46/73
47 47/73
48 48/73
49 49/73
50 50/73
51 <?php // IngressoPratico/EventBundle/Entity/EventManager.php namespace IngressoPratico\EventBundle\Entity; use IngressoPratico\EventBundle\View\EventView; class EventManager extends AbstractManager public function loadeventview($id) $view = new EventView($this->findOneAndLoadVenueSeatMaps($id)); return $view ->setseatstickets($this->geteventtickets($id)) ->setticketsstatus($this->geteventvenueticketsstatuses($id)); private function geteventvenueticketsstatuses($id) $sql = 'A long SQL clause.'; $ticketsstatuses = $this->em ->getconnection() ->executequery($sql, array('eventid' => $id)) ->fetchall(); return $ticketsstatuses; 51/73
52 <?php // IngressoPratico/EventBundle/Entity/EventManager.php namespace IngressoPratico\EventBundle\Entity; use IngressoPratico\EventBundle\View\EventView; class EventManager extends AbstractManager public function loadeventview($id) $view = new EventView($this->findOneAndLoadVenueSeatMaps($id)); return $view ->setseatstickets($this->geteventtickets($id)) ->setticketsstatus($this->geteventvenueticketsstatuses($id)); private function geteventvenueticketsstatuses($id) $sql = 'A long SQL clause.'; $ticketsstatuses = $this->em ->getconnection() ->executequery($sql, array('eventid' => $id)) ->fetchall(); return $ticketsstatuses; 52/73
53 53/73
54 <?php // IngressoPratico/EventBundle/Entity/EventManager.php namespace IngressoPratico\EventBundle\Entity; use IngressoPratico\EventBundle\View\EventView; class EventManager extends AbstractManager public function loadeventview($id) $view = new EventView($this->findOneAndLoadVenueSeatMaps($id)); return $view ->setseatstickets($this->geteventtickets($id)) ->setticketsstatus($this->geteventvenueticketsstatuses($id)); private function geteventvenueticketsstatuses($id) $sql = 'A long SQL clause.'; $ticketsstatuses = $this->em ->getconnection() ->executequery($sql, array('eventid' => $id)) ->fetchall(); return $ticketsstatuses; 54/73
55 55/73
56 <?php // IngressoPratico/EventBundle/Entity/EventManager.php namespace IngressoPratico\EventBundle\Entity; use IngressoPratico\EventBundle\View\EventView; class EventManager extends AbstractManager public function loadeventview($id) $view = new EventView($this->findOneAndLoadVenueSeatMaps($id)); return $view ->setseatstickets($this->geteventtickets($id)) ->setticketsstatus($this->geteventvenueticketsstatuses($id)); private function geteventvenueticketsstatuses($id) $sql = 'A long SQL clause.'; $ticketsstatuses = $this->em ->getconnection() ->executequery($sql, array('eventid' => $id)) ->fetchall(); return $ticketsstatuses; 56/73
57 57/73
58 <?php // IngressoPratico/EventBundle/View/EventView.php namespace IngressoPratico\EventBundle\View; use IngressoPratico\EventBundle\Entity\Event; class EventView protected $seatstickets = array(); protected $ticketsstatus = array(); public function construct(event $event) $this->event = $event; public function setseatstickets(array $tickets) foreach ($tickets as $ticket) $this->seatstickets[$ticket->getseatid()] = $ticket; public function setticketsstatus(array $ticketsstatus) foreach ($ticketsstatus as $ticketstatus) $this->ticketsstatus[$ticketstatus['catalog_items_id']] = array( 'status' => $ticketstatus['status'], 'origin' => $ticketstatus['origin'] ); 58/73
59 <?php // IngressoPratico/EventBundle/View/EventView.php namespace IngressoPratico\EventBundle\View; use IngressoPratico\EventBundle\Entity\Event; class EventView protected $seatstickets = array(); protected $ticketsstatus = array(); public function construct(event $event) $this->event = $event; public function setseatstickets(array $tickets) foreach ($tickets as $ticket) $this->seatstickets[$ticket->getseatid()] = $ticket; public function setticketsstatus(array $ticketsstatus) foreach ($ticketsstatus as $ticketstatus) $this->ticketsstatus[$ticketstatus['catalog_items_id']] = array( 'status' => $ticketstatus['status'], 'origin' => $ticketstatus['origin'] ); 59/73
60 60/73
61 61/73
62 <?php namespace IngressoPratico\OrderBundle\Model; final class Statuses const CANCELLED = -1; const OPEN = 0; const PAID = 2; 62/73
63 <?php // IngressoPratico/OrderBundle/Util/OrderItemStatusConverter.php namespace IngressoPratico\OrderBundle\Util; use IngressoPratico\OrderBundle\Model\Statuses as OrderStatuses; use IngressoPratico\CommonBundle\Util\StatusConverter; class OrderItemStatusConverter extends StatusConverter static public function getstatusstring($status) switch ($status): case OrderStatuses::CANCELLED: $status = 'available'; break; case OrderStatuses::OPEN: $status = 'reserved'; break; case OrderStatuses::PAID: $status = 'sold'; break; default: $status = 'unavailable'; break; endswitch; return $status; 63/73
64 <?php // IngressoPratico/EventBundle/View/EventView.php namespace IngressoPratico\EventBundle\View; use IngressoPratico\EventBundle\Entity\Event; use IngressoPratico\EventBundle\Util\StatusConverterFactory; class EventView //... public function getticketstatusforseatid($seatid) $ticketid = $this->getticketidforseatid($seatid); if (isset($this->ticketsstatus[$ticketid])) $status = $this->ticketsstatus[$ticketid]['status']; $converter = $this->ticketsstatus[$ticketid]['origin']; $converter = StatusConverterFactory::create($converter); return $converter->getstatusstring($status); return 'available'; 64/73
65 <?php // IngressoPratico/EventBundle/Controller/EventController namespace use use IngressoPratico\EventBundle\Controller; IngressoPratico\EventBundle\Entity\EventManager; Symfony\Bundle\FrameworkBundle\Controller\Controller; class EventController extends Controller public function showaction($id) $eventmanager = $this->container->get('event.event.manager'); $eventview = $eventmanager->loadeventquotaforseatmapview($id, $user); if (!$eventview) throw $this->createnotfoundexception(); return array('eventview' => $eventview); 65/73
66 # IngressoPratico/EventBundle/Resources/Event/show.html.twig # % seatmap_theme 'IngressoPraticoEventBundle:Event:seatmap-blocks.html.twig' % % for seatmap in eventview.eventvenueseatmaps % <div class="map map- loop.index "> seatmap_render(seatmap, 'eventview': eventview) </div> % endfor % 66/73
67 # IngressoPratico/EventBundle/Resources/Event/show.html.twig # % seatmap_theme 'IngressoPraticoEventBundle:Event:seatmap-blocks.html.twig' % % for seatmap in eventview.eventvenueseatmaps % <div class="map map- loop.index "> seatmap_render(seatmap, 'eventview': eventview) </div> % endfor % 67/73
68 # IngressoPratico/EventBundle/Resources/Event/seatmap-blocks.html.twig # % block seatmap_seat % % spaceless % seatmap_render_seattype_css(item) % set status = eventview.getticketstatusforseatid(item.id) % % set styles = seatmap_render_item_style(item, image_dir) % <div class="seat status "% if styles % styles raw % endif %>... </div> % endspaceless % % endblock seatmap_seat % #... # 68/73
69 69/73
70 <?php namespace IngressoPratico\VenueBundle\Tests\Twig; class SeatMapExtensionTest extends TestCase */ public function seatitemshouldmatchxpath() $html = $this ->extension ->renderseatmapitem($this->getseatinstance()); $this->assertmatchesxpath($html, './style./div[@class="seat available"] [./div[@class="content" and text() = "1"] ]' ); 70/73
71 Conclusões Testabilidade Código limpo Arquitetura Orientada a Serviços 71/73
72 380 horas/homem 427,5 hh projeto Maio Setembro 18 de Julho 2011 (Symfony 2.0-BETA5) 21 implantações 72/73
73 Obrigado! Eriksen Costa ifgy.co/ecp
A Tour of Silex and Symfony Components. Robert Parker @yamiko_ninja
A Tour of Silex and Symfony Components Robert Parker @yamiko_ninja Wait Not Drupal? Self Introduction PHP Developer since 2012 HTML and JavaScript Since 2010 Full Stack Developer at Dorey Design Group
More informationDIPLOMA IN WEBDEVELOPMENT
DIPLOMA IN WEBDEVELOPMENT Prerequisite skills Basic programming knowledge on C Language or Core Java is must. # Module 1 Basics and introduction to HTML Basic HTML training. Different HTML elements, tags
More informationSaturday, June 16, 12. Introducing
Introducing Allow me to introduce myself Claudio Beatrice @omissis 6+ years of experience on PHP Organizing Drupal events since 2009 PHP, Drupal & Symfony consulting Web Radio Telecommunications What s
More informationPractical Guided Tour of Symfony
Practical Guided Tour of Symfony Standalone Components DependencyInjection EventDispatcher HttpFoundation DomCrawler ClassLoader BrowserKit CssSelector Filesystem HttpKernel Templating Translation
More informationWeb Development using PHP (WD_PHP) Duration 1.5 months
Duration 1.5 months Our program is a practical knowledge oriented program aimed at learning the techniques of web development using PHP, HTML, CSS & JavaScript. It has some unique features which are as
More informationBuilding Better Controllers Symfony Live Berlin 2014. Benjamin Eberlei <benjamin@qafoo.com> 31.10.2014
Building Better Controllers Symfony Live Berlin 2014 Benjamin Eberlei 31.10.2014 Me Working at Qafoo We promote high quality code with trainings and consulting http://qafoo.com Doctrine
More informationSymfony2 and Drupal. Why to talk about Symfony2 framework?
Symfony2 and Drupal Why to talk about Symfony2 framework? Me and why Symfony2? Timo-Tuomas Tipi / TipiT Koivisto, M.Sc. Drupal experience ~6 months Symfony2 ~40h Coming from the (framework) Java world
More informationDrupal 8 Theming. Exploring Twig & Other Frontend Changes CROWD. Communications Group, LLC CROWD. Communications Group, LLC
Drupal 8 Theming Exploring Twig & Other Frontend Changes CROWD Communications Group, LLC CROWD Communications Group, LLC About Me Sean T. Walsh sean@crowdcg.com @seantwalsh @crowdcg irc: crowdcg Agenda
More informationDrupal 8. Core and API Changes Shabir Ahmad MS Software Engg. NUST Principal Software Engineser PHP/Drupal engr.shabir@yahoo.com
Drupal 8 Core and API Changes Shabir Ahmad MS Software Engg. NUST Principal Software Engineser PHP/Drupal engr.shabir@yahoo.com Agenda What's coming in Drupal 8 for o End users and clients? o Site builders?
More informationA new theme layer for Drupal 8? with jenlampton, chx, JohnAlbin, mortendk, effulgentsia, EclipseGc, & davidneedham
22 A new theme layer for Drupal 8? with jenlampton, chx, JohnAlbin, mortendk, effulgentsia, EclipseGc, & davidneedham Au gu st 20 12 INTRODUCTIONS WHO ARE YOU? YOU ARE: Theme developers? (D7? D6? D5?) YOU
More informationZend Framework Database Access
Zend Framework Database Access Bill Karwin Copyright 2007, Zend Technologies Inc. Introduction What s in the Zend_Db component? Examples of using each class Using Zend_Db in MVC applications Zend Framework
More informationThe Symfony CMF Book Version: master
The Symfony CMF Book Version: master generated on September, 0 The Symfony CMF Book (master) This work is licensed under the Attribution-Share Alike.0 Unported license (http://creativecommons.org/ licenses/by-sa/.0/).
More informationFacebook Twitter YouTube Google Plus Website Email
PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute
More informationAdvanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY
Advanced Web Development Duration: 6 Months SCOPE OF WEB DEVELOPMENT INDUSTRY Web development jobs have taken thе hot seat when it comes to career opportunities and positions as a Web developer, as every
More informationPreparing for Drupal 8
WHITE PAPER Preparing for Drupal 8 This is the first in a series of whitepapers to help Drupal service providers prepare for Drupal 8. In this paper, we introduce and summarize the features, benefits,
More informationNoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013
NoSQL web apps w/ MongoDB, Node.js, AngularJS Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013 About us Passionate (web) dev. since fallen in love with Sinclair ZX Spectrum Academic background in natural
More informationCertified PHP/MySQL Web Developer Course
Course Duration : 3 Months (120 Hours) Day 1 Introduction to PHP 1.PHP web architecture 2.PHP wamp server installation 3.First PHP program 4.HTML with php 5.Comments and PHP manual usage Day 2 Variables,
More informationData Management Applications with Drupal as Your Framework
Data Management Applications with Drupal as Your Framework John Romine UC Irvine, School of Engineering UCCSC, IR37, August 2013 jromine@uci.edu What is Drupal? Open-source content management system PHP,
More informationServices, Dependency Injection, and Containers, Oh my!
Services, Dependency Injection, and Containers, Oh my! Jennifer Hodgdon (jhodgdon) Pacific Northwest Drupal Summit Portland, Oregon October 18-19, 2014 What is a Service? Concept adopted from Symfony project
More informationaspwebcalendar FREE / Quick Start Guide 1
aspwebcalendar FREE / Quick Start Guide 1 TABLE OF CONTENTS Quick Start Guide Table of Contents 2 About this guide 3 Chapter 1 4 System Requirements 5 Installation 7 Configuration 9 Other Notes 12 aspwebcalendar
More informationCreating a Drupal 8 theme from scratch
Creating a Drupal 8 theme from scratch Devsigner 2015 (Hashtag #devsigner on the internets) So you wanna build a website And you want people to like it Step 1: Make it pretty Step 2: Don t make it ugly
More informationQ&A for Zend Framework Database Access
Q&A for Zend Framework Database Access Questions about Zend_Db component Q: Where can I find the slides to review the whole presentation after we end here? A: The recording of this webinar, and also the
More informationEverything you ever wanted to know about Drupal 8*
Everything you ever wanted to know about Drupal 8* but were too afraid to ask *conditions apply So you want to start a pony stud small horses, big hearts Drupal 8 - in a nutshell Learn Once - Apply Everywhere*
More informationThe Book for Symfony 2.0
The Book for Symfony.0 generated on November, 0 The Book (.0) This work is licensed under the Attribution-Share Alike.0 Unported license (http://creativecommons.org/ licenses/by-sa/.0/). You are free to
More informationWorkshop - Day 1. symfony workshop www.symfony-project.com www.sensiolabs.com
Workshop - Day 1 symfony workshop www.symfony-project.com www.sensiolabs.com Symfony Introduction symfony workshop www.symfony-project.com www.sensiolabs.com Sensio Sensio Web Agency Web agency Webmarketing
More informationINFORMATION BROCHURE Certificate Course in Web Design Using PHP/MySQL
INFORMATION BROCHURE OF Certificate Course in Web Design Using PHP/MySQL National Institute of Electronics & Information Technology (An Autonomous Scientific Society of Department of Information Technology,
More informationWhat s really under the hood? How I learned to stop worrying and love Magento
What s really under the hood? How I learned to stop worrying and love Magento Who am I? Alan Storm http://alanstorm.com Got involved in The Internet/Web 1995 Work in the Agency/Startup Space 10 years php
More informationSymfony vs. Integrating products when to use a framework
Symfony vs. Integrating products when to use a framework Xavier Lacot Clever Age Who I am Symfony developer since end 2005 Several contributions (plugins, docs, patches, etc.) Manager of the PHP Business
More informationThe Django web development framework for the Python-aware
The Django web development framework for the Python-aware Bill Freeman PySIG NH September 23, 2010 Bill Freeman (PySIG NH) Introduction to Django September 23, 2010 1 / 18 Introduction Django is a web
More informationModern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask
Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates
More informationSuiteCRM for Developers
SuiteCRM for Developers Getting started with developing for SuiteCRM Jim Mackin This book is for sale at http://leanpub.com/suitecrmfordevelopers This version was published on 2015-05-22 This is a Leanpub
More informationChoosing a Content Management System (CMS)
Choosing a Content Management System (CMS) Document Version Revision History Date Document Version Description Created By: 10/Oct/2013 First draft Laraib Saad Table of Contents 1. Introduction
More informationGantry Basics. Presented By: Jesse Hammil (Peanut Gallery: David Beuving)
Gantry Basics Intro By: Matt Simonsen Presented By: Jesse Hammil (Peanut Gallery: David Beuving) Khoza Technology, Inc. My Background is Multi-Faceted Small biz owner Windows MCSE (pre-000) Linux Admin
More informationCourse Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Duration of Course: 6 Months Fees: Rs. 25,000/- (including Service Tax) Eligibility: B.E./B.Tech., M.Sc.(IT/ computer
More informationDrupal 8 The site builder's release
Drupal 8 The site builder's release Antje Lorch @ifrik DrupalCamp Vienna 2015 #dcvie drupal.org/u/ifrik about me Sitebuilder Building websites for small NGOs and grassroots organisations Documentation
More information10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
More informationWeb development... the server side (of the force)
Web development... the server side (of the force) Fabien POULARD Document under license Creative Commons Attribution Share Alike 2.5 http://www.creativecommons.org/learnmore Web development... the server
More informationChris van Daele / 06.02.2015 / QuestBack, Köln. Laravel 5 Framework. The PHP Framework for Web Artisans
Chris van Daele / 06.02.2015 / QuestBack, Köln Laravel 5 Framework The PHP Framework for Web Artisans Simplicity is the essence of happiness. - Cedric Bledsoe Was bisher geschah 06/2011: Laravel 1 11/2011:
More informationCase Study. Data Governance Portal. www.brainvire.com 2013 Brainvire Infotech Pvt Ltd Page 1 of 1
Case Study Data Governance Portal www.brainvire.com 2013 Brainvire Infotech Pvt Ltd Page 1 of 1 Client Requirement The website is the Data Governance intranet portal. Data Governance is the practice of
More informationJapan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2a Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server
More informationPaul Boisvert. Director Product Management, Magento
Magento 2 Overview Paul Boisvert Director Product Management, Magento Platform Goals Release Approach 2014 2015 2016 2017 2.0 Dev Beta 2.0 Merchant Beta 2.x Ongoing Releases 2.0 Dev RC 2.0 Merchant GA
More informationA table is a collection of related data entries and it consists of columns and rows.
CST 250 MySQL Notes (Source: www.w3schools.com) MySQL is the most popular open-source database system. What is MySQL? MySQL is a database. The data in MySQL is stored in database objects called tables.
More informationMultilingual content in Drupal 8: a highly evolved permutated API. DrupalCamp Vienna 2013 Francesco Placella
Multilingual content in Drupal 8: a highly evolved permutated API DrupalCamp Vienna 2013 Francesco Placella Francesco Placella // plach From Venice, Italy Studied at Ca' Foscari University Owner at PSEGNO
More informationJ j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX
Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM
More informationHow To Design Your Code In Php 5.5.2.2 (Php)
By Janne Ohtonen, August 2006 Contents PHP5 Design Patterns in a Nutshell... 1 Introduction... 3 Acknowledgments... 3 The Active Record Pattern... 4 The Adapter Pattern... 4 The Data Mapper Pattern...
More informationZapper for ecommerce. Magento Plugin Version 1.0.0. Checkout
Zapper for ecommerce Magento Plugin Version 1.0.0 Branden Paine 4/14/2014 Table of Contents Introduction... 1 What is Zapper for ecommerce? Why Use It?... 1 What is Zapper?... 1 Zapper App Features...
More informationDesign Proposal for a Meta-Data-Driven Content Management System
Design Proposal for a Meta-Data-Driven Content Management System Andreas Krennmair ak@synflood.at 15th August 2005 Contents 1 Basic Idea 1 2 Services 2 3 Programmability 2 4 Storage 3 5 Interface 4 5.1
More informationJapan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 1B Java Application Software Developer: Phase1 DBMS Concept 20 Entities Relationships Attributes
More informationSylius Release January 29, 2016
Sylius Release January 29, 2016 Contents i ii Sylius is a modern e-commerce solution for PHP, based on Symfony2 Framework. Note: This documentation assumes you have a working knowledge of the Symfony2
More information(Meine) Wahrheit über. Symfony. Timon Schroeter. www.php-schulung.de
(Meine) Wahrheit über Symfony Timon!= Timon Schulung, Coaching, Beratung Version 4.2 (2002) OOP? register_globals? http://doitandhow.com/2012/07/16/fun-colored-spaghetti/ OOP C++ C++ HPC C++ fortran HPC
More informationeasyobject modern web applications made easy Project presentation
easyobject modern web applications made easy Project presentation version 1.0 - December 2012 par Cédric Françoys http://www.cedricfrancoys.be/easyobject This document is released under the Attribution-NonCommercial-ShareAlike
More informationPHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN
PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN Chanchai Supaartagorn Department of Mathematics Statistics and Computer, Faculty of Science, Ubon Ratchathani University, Thailand scchansu@ubu.ac.th
More informationINTRODUCING ORACLE APPLICATION EXPRESS. Keywords: database, Oracle, web application, forms, reports
INTRODUCING ORACLE APPLICATION EXPRESS Cristina-Loredana Alexe 1 Abstract Everyone knows that having a database is not enough. You need a way of interacting with it, a way for doing the most common of
More informationDrupal CMS for marketing sites
Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit
More information7 Web Databases. Access to Web Databases: Servlets, Applets. Java Server Pages PHP, PEAR. Languages: Java, PHP, Python,...
7 Web Databases Access to Web Databases: Servlets, Applets Java Server Pages PHP, PEAR Languages: Java, PHP, Python,... Prof. Dr. Dietmar Seipel 837 7.1 Access to Web Databases by Servlets Java Servlets
More informationAdvanced Web Technology 10) XSS, CSRF and SQL Injection 2
Berner Fachhochschule, Technik und Informatik Advanced Web Technology 10) XSS, CSRF and SQL Injection Dr. E. Benoist Fall Semester 2010/2011 Table of Contents Cross Site Request Forgery - CSRF Presentation
More informationwww.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
More informationMagento PHP Developer's Guide
Magento PHP Developer's Guide Allan MacGregor Chapter No. 2 "Magento Fundamentals for Developers" In this package, you will find: A Biography of the author of the book A preview chapter from the book,
More informationCustomer Bank Account Management System Technical Specification Document
Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6
More informationOnline Multimedia Winter semester 2015/16
Multimedia im Netz Online Multimedia Winter semester 2015/16 Tutorial 04 Major Subject Ludwig-Maximilians-Universität München Online Multimedia WS 2015/16 - Tutorial 04-1 Today s Agenda Repetition: Sessions:
More informationSymfony Turns 10! Sponsor guide 2015
Symfony Turns 10! Sponsor guide 2015 in 2015, Symfony turns 10! Hard to believe that the Symfony framework first saw the light of day 10 years ago (already!). Initially created for SensioLabs internal
More informationWeb Development Frameworks
COMS E6125 Web-enHanced Information Management (WHIM) Web Development Frameworks Swapneel Sheth swapneel@cs.columbia.edu @swapneel Spring 2012 1 Topic 1 History and Background of Web Application Development
More informationHere is a quick diagram of the ULV SSO/Sync Application. Number 3 is what we deal with in this document.
University of La Verne Single-SignOn Project How this Single-SignOn thing is built, the requirements, and all the gotchas. Kenny Katzgrau, August 25, 2008 Contents: Pre-requisites Overview of ULV Project
More informationsymfony symfony as a platform Fabien Potencier http://www.symfony-project.com/ http://www.sensiolabs.com/
symfony symfony as a platform Fabien Potencier http://www.symfony-project.com/ http://www.sensiolabs.com/ symfony 1.1 A lot of internal refactoring really a lot Some new features but not a lot Tasks are
More informationpset 7: C$50 Finance Zamyla Chan zamyla@cs50.net
pset 7: C$50 Finance Zamyla Chan zamyla@cs50.net Toolbox permissions HTML PHP SQL permissions use chmod in the Terminal to change permissions of files and folders chmod a+x folder folder executable by
More informationSpecialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools A. NAME OF INSTITUTE Centre For Development of Advanced Computing B. NAME/TITLE OF THE COURSE C. COURSE DATES WITH DURATION
More informationFaichi Solutions. The Changing Face of Drupal with Drupal 8
Faichi Solutions The Changing Face of Drupal with Drupal 8 Whitepaper published on Dec. 17, 2014 Compiled & Written by: Team Drupal, Faichi Edited by: Payal Mathur, Communication Manager, Faichi CONTENTS
More informationJapan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2b Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server
More information<Insert Picture Here> What's New in NetBeans IDE 7.2
Slide 1 What's New in NetBeans IDE 7.2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
More informationPROJECT REPORT OF BUILDING COURSE MANAGEMENT SYSTEM BY DJANGO FRAMEWORK
PROJECT REPORT OF BUILDING COURSE MANAGEMENT SYSTEM BY DJANGO FRAMEWORK by Yiran Zhou a Report submitted in partial fulfillment of the requirements for the SFU-ZU dual degree of Bachelor of Science in
More informationApplication Express Web Application Development
Application Express Web Application Development Agenda What is Oracle Application Express Demonstration Features and benefits Customer examples Conclusion Next steps Q&A Does Your Organization: Use spreadsheets
More informationDrupal and ArcGIS Yes, it can be done. Frank McLean Developer
Drupal and ArcGIS Yes, it can be done Frank McLean Developer Who we are NatureServe is a conservation non-profit Network of member programs Track endangered species and habitats Across North America Environmental
More informationMagento Extension Developer s Guide
Magento Extension Developer s Guide Copyright 2012 X.commerce, Inc. All rights reserved. No part of this Guide shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic,
More information09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
More informationIceWarp Server. Log Analyzer. Version 10
IceWarp Server Log Analyzer Version 10 Printed on 23 June, 2009 i Contents Log Analyzer 1 Quick Start... 2 Required Steps... 2 Optional Steps... 2 Advanced Configuration... 5 Log Importer... 6 General...
More informationMULTICULTURAL CONTENT MANAGEMENT SYSTEM
MULTICULTURAL CONTENT MANAGEMENT SYSTEM AT A GLANCE Language Partner s Multilingual Content Management System Meridium is multilingual content management system designed to fast track the process of multilingual
More informationEZ PLATFORM DESIGN AND DEVELOP CONTENT-DRIVEN WEBSITES AND APPLICATIONS
EZ PLATFORM DESIGN AND DEVELOP CONTENT-DRIVEN WEBSITES AND APPLICATIONS WANT TO BUILD CONTENT-RICH WEBSITES AND APPS BETTER, FASTER AND EASIER? ez gives you modern architecture and flexibility so you can
More informationThe C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
More informationPHP Integration Kit. Version 2.5.1. User Guide
PHP Integration Kit Version 2.5.1 User Guide 2012 Ping Identity Corporation. All rights reserved. PingFederate PHP Integration Kit User Guide Version 2.5.1 December, 2012 Ping Identity Corporation 1001
More informationWeb applications. Web security: web basics. HTTP requests. URLs. GET request. Myrto Arapinis School of Informatics University of Edinburgh
Web applications Web security: web basics Myrto Arapinis School of Informatics University of Edinburgh HTTP March 19, 2015 Client Server Database (HTML, JavaScript) (PHP) (SQL) 1 / 24 2 / 24 URLs HTTP
More informationUser Guide for Smart Former Gold (v. 1.0) by IToris Inc. team
User Guide for Smart Former Gold (v. 1.0) by IToris Inc. team Contents Offshore Web Development Company CONTENTS... 2 INTRODUCTION... 3 SMART FORMER GOLD IS PROVIDED FOR JOOMLA 1.5.X NATIVE LINE... 3 SUPPORTED
More informationVulnerable Web Application Framework
University of Rhode Island DigitalCommons@URI Open Access Master's Theses 2015 Vulnerable Web Application Framework Nicholas J. Giannini University of Rhode Island, ngiannini@my.uri.edu Follow this and
More informationThe Best Practices Book Version: 2.5
The Best Practices Book Version:. generated on June 0, 0 The Best Practices Book (.) This work is licensed under the Attribution-Share Alike.0 Unported license (http://creativecommons.org/ licenses/by-sa/.0/).
More informationJoomla 1.0 Extension Development Training. Learning to program for Joomla
Joomla 1.0 Extension Development Training Learning to program for Joomla Objectives & Requirements Learn to develop basic Joomla Mambots, Modules and Components. Familiar with PHP and MySQL programming.
More informationVariable Base Interface
Chapter 6 Variable Base Interface 6.1 Introduction Finite element codes has been changed a lot during the evolution of the Finite Element Method, In its early times, finite element applications were developed
More informationLinked Data Publishing with Drupal
Linked Data Publishing with Drupal Joachim Neubert ZBW German National Library of Economics Leibniz Information Centre for Economics SWIB13 Workshop Hamburg, Germany 25.11.2013 ZBW is member of the Leibniz
More informationIntroduction to Django Web Framework
Introduction to Django Web Framework Web application development seminar, Fall 2007 Jaakko Salonen Jukka Huhtamäki 1 http://www.djangoproject.com/ Django
More informationBring your intranet to the IBM i With Drupal and Zend Server
Bring your intranet to the IBM i With Drupal and Zend Server Mike Pavlak Solution Consultant mike.p@zend.com Insert->Header 1 & Footer Audience Manager looking for Intranet/place to put stuff Developers
More informationThe Book. Prepared by the core team, this is the Symfony bible. It is the reference for any user of the platform,
The Book Prepared by the core team, this is the Symfony bible. It is the reference for any user of the platform, who will typically want to keep it close at hand. Symfony 2 License: Creative Commons Attribution-Share
More informationRuby on Rails Secure Coding Recommendations
Introduction Altius IT s list of Ruby on Rails Secure Coding Recommendations is based upon security best practices. This list may not be complete and Altius IT recommends this list be augmented with additional
More informationHow To Fix A Web Application Security Vulnerability
Proposal of Improving Web Application Security in Context of Latest Hacking Trends RADEK VALA, ROMAN JASEK Department of Informatics and Artificial Intelligence Tomas Bata University in Zlin, Faculty of
More informationUse the information below and the algorithm on page 16 to answer Question 23.
Question 23 (20 marks) Use a SEPARATE writing booklet. Use the information below and the algorithm on page 16 to answer Question 23. An event ticket agency sells tickets for theatre, cinema and pop concerts.
More informationACCELRYS DISCOVERANT
CATALOG ACCELRYS DISCOVERANT 2013 COURSE CATALOG We are proud to offer a variety of courses to meet your organization s needs. These classes are designed to teach everything from the basics of navigation
More informationTeam Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph. Client: Brian Krzys
Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph Client: Brian Krzys June 17, 2014 Introduction Newmont Mining is a resource extraction company with a research and development
More informationForm And List. SuperUsers. Configuring Moderation & Feedback Management Setti. Troubleshooting: Feedback Doesn't Send
5. At Repeat Submission Filter, select the type of filtering used to limit repeat submissions by the same user. The following options are available: No Filtering: Skip to Step 7. DotNetNuke User ID: Do
More informationJava Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
More informationSpecialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools Objective: At the end of the course, Students will be able to: Understand various open source tools(programming tools and databases)
More informationSymfony 2 Tutorial. Model. Neues Bundle erstellen: php app/console generate:bundle --namespace=blogger/blogbundle
Symfony 2 Tutorial Neues Bundle erstellen: php app/console generate:bundle --namespace=blogger/blogbundle Eintrag erfolgt in app/appkernel.php und app/config/routing.yml. Model Available types: array,
More informationc360 Email to Case Installation and Configuration Guide
c360 Email to Case Installation and Configuration Guide Microsoft Dynamics CRM 2011 compatible c360 Solutions, Inc. www.c360.com Products@c360.com Table of Contents c360 Email to Case Installation and
More information