OOP, MVC, Ajax e PHP5 na prática com SugarCRM 5.0 David O’Keefe, André Lopes – Lampada Global Services
Solutions instead of Code Lampada Global Services desenvolve soluções em código aberto para clientes em toda parte do mundo. Nossos clientes não querem comprar código, querem as soluções dos seus problemas. As melhores soluções são: Rápida Económica Robusta Personalizável Extensível Atualizável PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
OOP e MVC OOP - Programação Orientada a Objetos Paradigma de análise, projeto e programação  Baseado na composição e interação entre unidades de software MVC - Model-view-controller Padrão de arquitetura de software que separa os dados (Model) da interface (View) e a Lógica (Controller). 3 camadas:  Apresentação (interface) View e Controller, separadas nesta camada Domínio (business logic)  Model Acesso a dados (data access), a “3 0  camada” separada mas implicitamente junta com o Model PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
Por que o SugarCRM foi feita em PHP? Propósito principal é de implementar soluções web velozes, simples e eficientes. Características: Velocidade e robustez Estruturado e orientação a objeto Portabilidade - independência de plataforma Tipagem fraca Sintaxe similar a C/C++ e PERL Mais rápida e económica que a Java PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
Frameworks: Build software or write code? Reinventar a roda é divertido ! Zend Framework, Phrame, CakePHP, Symfony, WACT, ZooP, CodeIgniter 40+ frameworks em PHP  Mais consistente Mais rápido de protótipo a produto Mais configuração e pesquisa  Menos criação de código SugarCRM é um framework PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
SugarCRM Framework Model-View-Controller (MVC) /include/MVC Banco de dados /data/SugarBean.php $this->db = &PearDatabase::getInstance();  $this->dbManager = &DBManagerFactory::getInstance(); Internacionalização e Localização /include/language /modules/[MyModule]/language /include/Localization/Localization.php Autenticação, Autorização e Sessões /modules/User/Authentication /modules/ACL AJAX, Webservices, RSS, etc. Dashlets, NuSOAP, WICK (input completion),  DOMIT RSS E-mail, Formatos (ex. PDF) e Busca PHPMailer, PHP PDF, FCKeditor  Infra-estrutura base /include /custom PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
SugarCRM: MVC – Control ! <?PHP require_once('include/MVC/Controller/SugarController.php'); class demo_MyModuleController extends SugarController { function demo_MyModuleController(){ parent::SugarController(); } function manipulate_model() { $this->bean->message = “Hello World !”; } } ?> PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
SugarCRM: MVC – ControllerFactory function getController($module){ $class = ucfirst($module).'Controller'; if(file_exists('custom/modules/'.$module.'/controller.php')){ require_once('custom/modules/'.$module.'/controller.php'); if(class_exists($class))$controller = new $class(); } elseif(file_exists('modules/'.$module.'/controller.php')){ require_once('modules/'.$module.'/controller.php'); if(class_exists($class))$controller = new $class(); } else { $controller = new SugarController(); } //set the module $controller->module = $module; return $controller; } PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
SugarCRM MVC index.php $app = new SugarApplication(); \include\MVC\SugarApplication.php $this->controller = ControllerFactory::getController($module); \include\MVC\Controller\SugarController.php \include\MVC\View\views\view.edit.php \include\EditView\EditView2.php É uma arquitetura orientada a objetos… PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
SugarCRM Orientação a Objeto \modules\bndl_ComponentFields\bndl_ComponentFields_sugar.php \modules\bndl_ComponentFields\bndl_ComponentFields.php \include\SugarObjects\templates\basic\Basic.php \data\SugarBean.php \include\database\PearDatabase.php \include\database\MysqliManager.php PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
SugarCRM QuickSearch AJAX [sugarcrm]\modules\bndl_BundleRequirements\metadata\editviewdefs.php [sugarcrm]\custom\application\Ext\Language\en_us.lang.ext.php [sugarcrm]\modules\bndl_BundleRequirements\vardefs.php AJAX: [sugarcrm]\include\SugarFields\Fields\Parent\SugarFieldParent.php AJAX: [sugarcrm]\include\SugarFields\Fields\Parent\EditView.tpl AJAX: [sugarcrm]\jssource\src_files\include\javascript\quicksearch.js PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.
Sobre a Lampada Global Services Desde 2003, oferecemos soluções em PHP e código aberto. Mais que 60 projetos no Brasil e afora. SugarCRM Silver Partner, o único no Brasil. www.lampadaglobal.com Estamos contratando ! PHP Conference Brasil 2007 ©2007  Lampada  Global Services. All rights reserved.

Lampada Php Conference Brasil 2007 Palestra

  • 1.
    OOP, MVC, Ajaxe PHP5 na prática com SugarCRM 5.0 David O’Keefe, André Lopes – Lampada Global Services
  • 2.
    Solutions instead ofCode Lampada Global Services desenvolve soluções em código aberto para clientes em toda parte do mundo. Nossos clientes não querem comprar código, querem as soluções dos seus problemas. As melhores soluções são: Rápida Económica Robusta Personalizável Extensível Atualizável PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 3.
    OOP e MVCOOP - Programação Orientada a Objetos Paradigma de análise, projeto e programação Baseado na composição e interação entre unidades de software MVC - Model-view-controller Padrão de arquitetura de software que separa os dados (Model) da interface (View) e a Lógica (Controller). 3 camadas: Apresentação (interface) View e Controller, separadas nesta camada Domínio (business logic) Model Acesso a dados (data access), a “3 0 camada” separada mas implicitamente junta com o Model PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 4.
    Por que oSugarCRM foi feita em PHP? Propósito principal é de implementar soluções web velozes, simples e eficientes. Características: Velocidade e robustez Estruturado e orientação a objeto Portabilidade - independência de plataforma Tipagem fraca Sintaxe similar a C/C++ e PERL Mais rápida e económica que a Java PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 5.
    Frameworks: Build softwareor write code? Reinventar a roda é divertido ! Zend Framework, Phrame, CakePHP, Symfony, WACT, ZooP, CodeIgniter 40+ frameworks em PHP Mais consistente Mais rápido de protótipo a produto Mais configuração e pesquisa Menos criação de código SugarCRM é um framework PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 6.
    SugarCRM Framework Model-View-Controller(MVC) /include/MVC Banco de dados /data/SugarBean.php $this->db = &PearDatabase::getInstance(); $this->dbManager = &DBManagerFactory::getInstance(); Internacionalização e Localização /include/language /modules/[MyModule]/language /include/Localization/Localization.php Autenticação, Autorização e Sessões /modules/User/Authentication /modules/ACL AJAX, Webservices, RSS, etc. Dashlets, NuSOAP, WICK (input completion), DOMIT RSS E-mail, Formatos (ex. PDF) e Busca PHPMailer, PHP PDF, FCKeditor Infra-estrutura base /include /custom PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 7.
    SugarCRM: MVC –Control ! <?PHP require_once('include/MVC/Controller/SugarController.php'); class demo_MyModuleController extends SugarController { function demo_MyModuleController(){ parent::SugarController(); } function manipulate_model() { $this->bean->message = “Hello World !”; } } ?> PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 8.
    SugarCRM: MVC –ControllerFactory function getController($module){ $class = ucfirst($module).'Controller'; if(file_exists('custom/modules/'.$module.'/controller.php')){ require_once('custom/modules/'.$module.'/controller.php'); if(class_exists($class))$controller = new $class(); } elseif(file_exists('modules/'.$module.'/controller.php')){ require_once('modules/'.$module.'/controller.php'); if(class_exists($class))$controller = new $class(); } else { $controller = new SugarController(); } //set the module $controller->module = $module; return $controller; } PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 9.
    SugarCRM MVC index.php$app = new SugarApplication(); \include\MVC\SugarApplication.php $this->controller = ControllerFactory::getController($module); \include\MVC\Controller\SugarController.php \include\MVC\View\views\view.edit.php \include\EditView\EditView2.php É uma arquitetura orientada a objetos… PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 10.
    SugarCRM Orientação aObjeto \modules\bndl_ComponentFields\bndl_ComponentFields_sugar.php \modules\bndl_ComponentFields\bndl_ComponentFields.php \include\SugarObjects\templates\basic\Basic.php \data\SugarBean.php \include\database\PearDatabase.php \include\database\MysqliManager.php PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 11.
    SugarCRM QuickSearch AJAX[sugarcrm]\modules\bndl_BundleRequirements\metadata\editviewdefs.php [sugarcrm]\custom\application\Ext\Language\en_us.lang.ext.php [sugarcrm]\modules\bndl_BundleRequirements\vardefs.php AJAX: [sugarcrm]\include\SugarFields\Fields\Parent\SugarFieldParent.php AJAX: [sugarcrm]\include\SugarFields\Fields\Parent\EditView.tpl AJAX: [sugarcrm]\jssource\src_files\include\javascript\quicksearch.js PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.
  • 12.
    Sobre a LampadaGlobal Services Desde 2003, oferecemos soluções em PHP e código aberto. Mais que 60 projetos no Brasil e afora. SugarCRM Silver Partner, o único no Brasil. www.lampadaglobal.com Estamos contratando ! PHP Conference Brasil 2007 ©2007 Lampada Global Services. All rights reserved.