Zend Framework for Enterprise PHP on IBM i
|
|
|
- Carmel Patrick
- 10 years ago
- Views:
Transcription
1 Zend Framework for Enterprise PHP on IBM i By Alan Seiden PHP/i Developer and Consultant Strategic Business Systems, Inc.
2 About me (Alan Seiden) Consultant/developer and mentor specializing in PHP & Zend Framework on IBM i Consultant to IBM s Redbook: Zend Core for i5/os First IBM i developer certified in Zend Framework Co-founder of first Zend Framework Meetup (New York) Developed best web app (COMMON meeting 2009) 2
3 About Strategic Business Systems, Inc. Partner with IBM since 1982 IBM i hardware, software development, consulting Concentration in food & beverage and automotive industries HQ in northern New Jersey Partner with Zend ( the PHP company ) since 2008 PHP s been our preferred web technology since 2005 In addition to our consulting/development services, we help customers select and purchase Zend s training and software We represent Zend in the northeastern USA 3
4 What I ll cover today Evolution of PHP on IBM i In general, and For each developer, assess where you are and what s next Zend Framework Why it s good for you Concepts and components Tips and tricks You will leave here understanding what ZF can do and that you can do it! 4
5 Why PHP on i Powerful, flexible, popular Runs completely on your good old i Has backing & support of IBM Allows your teams to work together Re-use RPG logic, called from PHP Consolidate departmental solutions (Excel spreadsheets!) into your reliable db2 database 5
6 Typical stages of PHP on i Grass roots Prove to yourself how well PHP works on i Pilot project(s) Obtain some buy-in from management Enterprise PHP Important project developed with experience 6
7 Grass roots stage 7
8 Grass roots stage Go ahead, kick the tires! Download and install Zend Core (free) Create a simple web page reading/writing to db2 Try open source software (such as Mantis/400) Prove it to yourself before selling to manager Special tools are optional at this point Even Notepad will do, but Zend Studio is free on IBM i 8
9 Grass roots resources Zend Core: One year of free silver support included Online help and information PHP Manual: Zend Core for i5/os Redbook Knowledge base: Forums (look for i5 forums): 9
10 Pilot Project 10
11 Pilot project: how to pick one Well defined, useful, with modest scope Accesses IBM i resources db2 RPG calls (optional) Could be a new application or extension of an existing one to the web 11
12 Pilot project: goals and resources Small scale lets you do it right Set standards for future Safe space to get experience You need these free tools Zend Core, Zend Studio And one or more of these: Training/Support A PHP framework (e.g. Zend Framework, which is free) Mentoring, coached development Greatly accelerate progress, save staff time Especially when starting with a framework Zend Platform (try 60-day trial) 12
13 Zend Studio for Eclipse (IDE) Highlights errors, offers interactive debugging, and speeds creation of Zend Framework projects 13
14 Zend Platform (soon to be Zend Server) Provides caching (fast!), debugging and event tracking, integration with Zend Studio (IDE) 14
15 Zend Framework A starting point for your applications, providing Security features Modular design A collection of over 70 PHP components to simplify common tasks, including some for: Form creation (and reuse) Logging Database access A demonstration of PHP 5 best practices It provides standards and great functionality but will not cramp your style. Your development is not limited in any way 15
16 But what is Enterprise PHP? 16
17 Enterprise PHP is: Grown-up development Think of your mature RPG processes Consistent Reliable You know how to do that 17
18 Enterprise PHP in detail Design/development cycle Standards Security Focus on easy maintainance Reusable functionality (not just copy and paste) Procedures that ensure quality Deployment Need tools to help support app in live environment Predictable, consistent performance 18
19 Zend Framework An important piece of the enterprise puzzle 19
20 The PHP community is evolving Old question: what is PHP? Current question: Which PHP Framework do you use? New question: How do I integrate x framework into a project with Zend Framework? 20
21 Three benefits of a PHP framework 1. Modular design Avoid the tangled mess that comes with growth 2. Best practices You absorb the practices and (we hope) good habits of the framework s creators. 3. Components Pre-built functionality Keep up with new technology for you 21
22 Where to get it Pre-installed with Zend Core /usr/local/zend/zendframework/library php.ini includes it in include_path Get the latest at framework.zend.com Copy into /usr/local/zend/zendframework/library or install elsewhere Can install in your application s library folder as well Make sure you set include path properly 22
23 Why ZF s time is right PHP is being used for critical apps on IBM i Managers, CIOs, technology architects are taking notice It s time for professional practices Standards and consistency Awareness of security Reuse and easy maintenance of code Leverage your software investments Training and support Doing it right ZF gets you there Enterprise PHP faster and keeps you in control 23
24 Why I use it As I learn what it can do, the less boring code I write I can write less plumbing code Use ZF s code however you like Safe for corporate use It keeps up with trends and APIs Compatibility with diverse database systems, and APIs (authentication, web services, more) 24
25 Zend Framework Community Contributors include individuals and companies. Companies include: Zend (of course) IBM OmniTI Technology partners: Adobe, Google, IBM, Microsoft, nirvanix, StrikeIron 25
26 Here s why ZF reminds me of the i5 world Appreciation of standards: naming, parameter lists The tools you need are already integrated Common components (template system, er, etc.) are there for you; no need to research/download/install Upgrades like a cume tape all components upgraded as a well tested unit ZF support available from Zend Similar to phoning IBM about i5/os 26
27 ZF s birth, early years, and maturity on i5 2005: PHP Collaboration Project at ZendCon Started as collection of components but coalesced PHP 5, object oriented (OO) from the start Set example of OO design patterns and practices More on OO later : Fast progress July 2007: GA version 1.0 Feb. 2009: version 1.70 with db2/i5 support Oct. 2009: version 1.94; minor releases every couple of weeks April 2009: ZF/i application won COMMON s best web solution 27
28 COMMON award for best web solution 2009 Allied Beverage Group s ebiz Wine Section catalog/ordering title slide system on IBM i Built in Zend Framework Full-text catalog search in native db2 28
29 Why ebiz was successful For Allied, PHP brings people and resources together on the i db2 database provides reliable, consistent product catalog and order data No extra servers needed Re-using RPG logic Everyone on the same team PHP is superglue : plans afoot to connect other systems, too In the wine distribution industry, a solid reputation is important For their first high-profile project, asked Strategic (us) to develop the system Consistency, standards, security, reusability Zend Framework Speed critical for sales reps in the field (Being compared to green screen speed!) Zend Platform 29
30 Allied Beverage ebiz live demo (if time) 30
31 Object orientation (OO) Instant intro: only two slides! 31
32 Object Orientation (OO) Here is an incredibly quick summary of OO, which you ll see used throughout ZF OO Concept Property Analogy in i5 a field in a data structure Example $_ordernum Method function or subprocedure isorder() Class Imagine an intelligent data structure containing both data (properties) and programming logic (methods), which are both called members of the class class Order { protected $_ordernum; function isorder() {... }... } 32
33 OO Syntax The arrow (->) lets you access the members (methods and properties) of an object instance $controller = $this->getrequest()->getcontrollername(); Sometimes you ll also see the double colon (::), which is similar, but is used when a member is static (one per class) echo Zend_Registry::get('user'); If you can read this notation, you can read ZF code. You will learn to appreciate its simplicity. 33
34 Model-View-Controller Good structure for your application 34
35 Model View Controller (MVC) design pattern You already know this pattern from RPG/DDS With green screens, IBM handles it under the covers, so you take it for granted On the web, you must define your application s structure more explicitly Be patient MVC seems strange at first, but you ll soon realize that you ve been here before 35
36 MVC in detail Model Reusable classes that access data and business rules Keep SQL and application details in one place View Templates containing HTML or other output, with small bits of PHP Plunk your HTML into a view without worrying about overwriting your mainline PHP code helps web designers work with business programmers Controller (action controller) Application flow Connects model and view Don t confuse with front controller, which just initializes the MVC Next: MVC from an RPG perspective 36
37 RPG Model View Controller (MVC) RPG/Application (Subroutine) VIEW Access/Business Logic M 5250 Screen (DDS) V RPG/Application flow C (Mainline) 37
38 Confession For my first attempt with ZF, I put all my SQL in the controller It gave me a feeling of accomplishment The MVC police did not appear Later, I moved the SQL into a model class Simplified the controller, which was getting complex and hard to understand Made the SQL reusable 38
39 Initialize MVC 39
40 Front controller to action controller 40
41 Front controller routes friendly URL Default routing convention: Controller maps to class name Action maps to method name Param/value pairs are passed to action http request Controller1 action1() action2() Bootstrap: index.php Front Controller Controller2 action1() action2() 41
42 All requests through index.php in doc root Document root is the only public folder. index.php: initializes application instantiates Front Controller 42
43 Apache configuration Most tutorials suggest.htaccess, but I prefer to use the main PASE Apache config file (without proxy): /usr/local/zend/apache2/conf/httpd.conf Listen 8000 RewriteEngine on NameVirtualHost :8000 <VirtualHost :8000> DocumentRoot /www/ebiz/htdocs/html </VirtualHost> <Directory /www/ebiz/htdocs/html/> # disallow.htaccess, so webserver won t search for them AllowOverride None # funnel all requests to index.php # except requests for static resources RewriteEngine On RewriteRule!\.(js ico gif jpg png css html)$ index.php </Directory> 43
44 Front controller bootstrap file: index.php <?php // minimum bootstrap file (can be many variations) // use explicit, full paths to save the i5 time searching for files $paths = array( realpath(dirname( FILE ). '/../library'), realpath(dirname( FILE ). '/../application'), realpath(dirname( FILE ). '/../application/models'), '.' ); set_include_path(implode(path_separator, $paths)); // Prepare the front controller $frontcontroller = Zend_Controller_Front::getInstance(); // Dispatch the request using the front controller $frontcontroller->dispatch(); 44
45 Action Controller Zend_Controller 45
46 Action Controller Controller classes handle groups of request URLs Default: IndexController Organizes and groups functionality One class (extending Zend_Controller_Action) for each controller Action methods in each controller class handle requests Default: indexaction() Named like actionaction() Example: If action is edit then method is editaction() 46
47 Controller example 47
48 View Zend_View 48
49 View Scripts (templates) PHP-based script templates to present data Should contain only display logic, not business logic Default naming: myaction.phtml Helpers Classes and methods that provide reusable view functionality Examples of built-in view helpers: escape(), formtext(), partial(), partialloop(), headtitle() Write your own, too Layout 49
50 What View means to you You can plunk HTML right into the view script and replace literals with PHP echo statements: <?php echo $this->productnum?> ZF provides smart defaults The $this->escape() view helper uses PHP s htmlentities() function, recommended by most security experts. 50
51 My own view helper: TitleCase.php class Zend_View_Helper_Title_Case { public $view; public function titlecase($string = '') { return ucwords(strtolower(trim($string))); } //(public function titlecase()) } public function setview(zend_view_interface $view) { } $this->view = $view; Usage: echo $this->titlecase( mozilla firefox ); // Mozilla Firefox 51
52 Controller (again) leads to view 52
53 View script automatically rendered 53
54 Zend_Layout Gives your site a consistent look while retaining flexibility Two-step view pattern Uses Zend_View for rendering Placeholders useful for setting javascript, titles, other variable data 54
55 Zend_Layout code 55
56 Model 56
57 Model Model classes are abstract representations of data Can be extended from: Zend_Db_Table For database abstraction Or any other class that fits your needs Or build your own own abstract representations of your data Model classes can contain business logic to prepare complex data for presentation I stuff any weird code in models so that controllers/views are clean 57
58 Model example: system busy flag // model: Busyflag.php class Busyflag { protected $name = SYSFLAGS'; // old-fashioned System 36 table // issiteup: return true if up, false if down public function issiteup() { $sql = "select BZYFLG from {$this->name} where RECID ='B'"; $row = SBSDbhelp::getOneRow($sql); // true if Y, false otherwise. return $row['bzyflg'] == 'Y'; } //(public function issiteup()) } //(class Busyflag) // usage (from a predispatch front controller plugin) $busyflag = new Busyflag(); if (!$busyflag->issiteup()) { // Take user to "site down" page. } //(if (!$busyflag->issiteup())) 58
59 Components included in ZF Dozens so far with more on the way 59
60 Library of Zend components Reminder: Zend/Db.php = Zend_Db Zend/Db/Table.php = Zend_Db_Table 60
61 Forms Zend_Form component 61
62 Zend_Form Creates the HTML for your data entry forms $form = new Zend_Form(); $form->addelement( text, ordernum ); $form->addelement( text, date ); Several ways to output form elements echo $form; // (all elements) or echo $form->ordernum; // (just ordernum) or echo $form->getelement( ordernum ); The HTML generated by that last echo <input type= text name= ordernum id= ordernum > 62
63 More complex Zend_Form example in MVC // in a model: class My_Form extends Zend_Form { /* Create a text box that checks for non-letter characters ** and converts text to lower case on submission */ $form->addelement('text', 'username', array( 'validators' => array( 'alnum', array('regex', false, '/^[a-z]/i') ), 'required' => true, 'filters' => array('stringtolower'), )); } // in a controller: $form = new My_Form(); $this->view = $form // in a view: echo $this->form; 63
64 Real life example of Zend_Form 64
65 Search results 65
66 Implementation of Product Id field // AdvancedSearchForm class is a model: class AdvancedSearchForm extends Zend_Form { $prodid = new Zend_Form_Element_Text("prodid", array('size' => 7, 'maxlength' => 7, 'class' => 'width5')); $prodid->setrequired(false) ->addfilters(array("striptags", "StringTrim")) ->addvalidator(new Zend_Validate_Digits()) ->setdescription("partial product ID") ->setlabel("code"); $this->addelements(array($prodid)); } //(AdvancedSearchForm) 66
67 Database access Zend_Db component 67
68 Database access with Zend_Db Zend_Db can create SQL for you Fewer long, error-prone SQL strings Zend_Db offers a lot beyond creating SQL consistent quoting escaping prepared statements (substitutions for? ) profiler 68
69 Database access Several classes give you a good start Zend_Db_Adapter_Abstract: uniform API for many RDBMS s Zend_Db_Adapter_Db2 Zend_Db_Adapter_Pdo_Mysql Zend_Db_Table Gateway class for doing queries on a given table Zend_Db_Statement Specify SQL for prepared statement (secure--with? marks) and more 69
70 Zend_Db_Table Zend_Db_Table gives you record-level access similar to what you may be used to. Insert $products->insert(array( ); prodid' Update => ', prodname' => sparkling water, Find (like chaining with a key) $results = $products->find( ); Delete 70
71 Zend_Db techniques for IBM i $driveroptions = array('i5_lib' => MYLIBRARY'); // Use 'driver_options' => array('i5_naming' => DB2_I5_NAMING_ON)) for liblists $config = array( 'host' => 'localhost', 'username' => 'ALAN', 'password' => secret', 'dbname' => 'SBSDB', 'driver_options' => $driveroptions); $db = Zend_Db::factory('DB2', $config); // Using "select" method to select and display records $rows = $db->select()->from('customers') ->where('custno >= 0'); // or write your own SQL with parameters $sql = 'SELECT * FROM CUSTOMERS WHERE CUSTNO >? and CUSTNO <?'; $rows = $db->fetchall($sql, array(100, 2000)); // either way, output results foreach ($rows as $row) { echo $row['custno']. ' '. $row['custname']; } 71
72 Config.ini externalizes Zend_Db settings ; config.ini [dev] db.adapter = PDO_MYSQL db.params.username = alan db.params.password = secret db.params.dbname = devdb db.params.host = // in index.php (bootstrap file) $config = new Zend_Config_Ini(realpath(dirname( FILE ). '/../application/config.ini'), 'dev'); $db = Zend_Db::factory($config->db); 72
73 Working with RPG Wrap i5 Toolkit calls in model classes 73
74 Use models to call RPG from ZF I always wrap RPG calls in a model class to simplify my code. Here s why: If the RPG program s name changes, or we call a different program (e.g. CL instead of RPG), I only need to change the model class, not every place it s used Implement consistent error handling (e.g. level check) The model bridges the worlds of RPG and PHP From PHP to RPG, zero-pad numbers From RPG to PHP (return), interpret the RPG s results Convert Y to true. Boolean values are well understood by PHP, can be evaluated by if($flag) 74
75 Example of calling RPG from ZF 75
76 Model hides the details of calling RPG class wer104 { public function construct($sequence = 0) { // lots of code in here, conversions, erorr handling, etc.... $parmsin = array('pwebid'=>$sessionkey);... I5_command... $this->_isvaliddata = (($returnvalues['prtn'] == 'Y')? true : false); } // be very explicit, true or false final public function isvaliddata() { return $this->_isvaliddata; } } //(class wer104) 76
77 See how simple the controller code is /* in controller, we use model wer104 * which wraps/calls RPG */ $validationcall = new wer104($sequence); if (!$validationcall->isvaliddata()) { // validation failed; redirect to edit"... } // otherwise, we passed validation 77
78 Pagination Zend_Paginator 78
79 Zend_Paginator Handles page-at-time logic, similar to subfiles, for large lists Gives you: the right data records Page numbering, back, next, first, last For data, it s commonly fed an array or db select object If database select, paginator is smart enough to read only the records to be displayed on the page 79
80 Zend_Paginator display (The appearance can be fully customized by changing the View and View Partial scripts) 80
81 Example of Zend_Paginator code Controller $result = $db->select()->from("slemstp"); $paginator = Zend_Paginator::factory($result); // Set parameters for paginator $paginator->setcurrentpagenumber($this->_getparam("page")); // URL must be something like: <- meaning we are currently on page one, and pass that value into the "setcurrentpagenumber" $paginator->setitemcountperpage(20); $paginator->setpagerange(10); // Make paginator available in views $this->view->paginator = $paginator; View script <?php if (count($this->paginator)):?> <ul> <?php foreach ($this->paginator as $item):?> <li><?= $item['lename1'];?></li> <?php endforeach;?> </ul> <?php endif;?> <?= $this->paginationcontrol($this->paginator, 'Sliding', 'partials/paginationcontrol.phtml');?> 81
82 Code to build links for Paginator View Partial (used in View Script on previous slide) NOTE these view helpers: $this->url which build URL links with the prev, next, and other page numbers, and leads back to controller with the page clicked by user. <?php echo sprintf('page %s of %s', $this->current, 'xxx');?> <?php if ($this->pagecount):?> <div class="paginationcontrol"> <!-- Previous page link --> <?php if (isset($this->previous)):?> <a href="<?= $this->url(array('page' => $this->previous));?>">< Previous</a> <?php else:?> <span class="disabled">< Previous</span> <?php endif;?> <!-- Numbered page links --> <?php foreach ($this->pagesinrange as $page):?> <?php if ($page!= $this->current):?> <a href="<?= $this->url(array('page' => $page));?>"><?= $page;?></a> <?php else:?> <?= $page;?> <?php endif;?> <?php endforeach;?> <!-- Next page link --> <?php if (isset($this->next)):?> <a href="<?= $this->url(array('page' => $this->next));?>">next ></a> <?php else:?> <span class="disabled">next ></span> <?php endif;?> </div> <?php endif;?> 82
83 Other components you ll like 83
84 Zend_Registry Store global data without polluting the global scope Zend_Registry::set( key, $value); Zend_Registry::get( key ); Useful for storing sessions, configuration data or any data that could potentially be important on a per-request basis 84
85 Zend_Log A structured, flexible logging class with several backends Stream (write to a file) Firebug Mail Db Example of logging to file system $writer = new Zend_Log_Writer_Stream('/path/to/logfile'); // Only send entries of warning level and higher. $writer->addfilter(zend_log::warn); $logger = new Zend_Log($writer); // later $logger->info('informational message'); $logger->err( Error message'); // Error message 85
86 Zend_Config OO syntax for reading/writing config files Internally it s an array Multiple backends: INI, XML Divide sections with [ ], good for dev/prod And hierarchichy with periods after that db.params.username = xxxx Many components accept Zend_Config object as well as array Db Forms 86
87 Config + Registry Config.ini: [dev] db.adapter = PDO_MYSQL db.params.username = admin db.params.password = xxxx db.params.dbname = appdb db.params.host = log.filename = /appdev/logs/app.log $config = new Zend_Config_Ini(realpath(dirname( FILE ). '/../application/config.ini'), 'dev'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); $db = Zend_Db::factory($config->db); Zend_Db_Table::setDefaultAdapter($db); $registry->set('db', $db); // create logger; store it in registry $logfile = $registry->get('config')->log->filename; $writer = new Zend_Log_Writer_Stream($logFile); $logger = new Zend_Log($writer); $registry->set('logger', $logger); 87
88 Caching with Zend_Cache Frontend Core Output Function File Class Backend Apc File Memcached Sqlite ZendPlatform/Server 88
89 Zend_Cache: basic code example $frontendoptions = array( 'lifetime' => 7200 ); $backendoptions = array( 'cache_dir' => '../application/cache/' ); $cache = Zend_Cache::factory( Output, File, $frontendoptions, $backendoptions); if (!($cache->start( product list )) { // this content will be held till end() method called echo writing cacheable content ; } $cache->end(); // save and output content 89
90 Zend_PDF <?php // combine three TIFF images into a multi-page PDF $images = array('/images/page1.tif, /images/page2.tif,'/images/page3.tif ); $newfilename = '/pdf/full_document.pdf'; $pdf = new Zend_Pdf(); foreach ($images as $image) { // Create new page $pdfpage = $pdf->newpage(zend_pdf_page::size_a4); $image = Zend_Pdf_Image::imageWithPath($image); $pdfpage->drawimage($image, 10, 10, 400, 500); // add page to pdf $pdf->pages[] = $pdfpage; } //(foreach ($images as $image)) // Save document as a new file $pdf->save($newfilename); 90
91 Client classes for web services Akismet Amazon Audioscrobbler Delicious Flickr Google Data Nirvanix ReCaptcha Simpy SlideShare StrikeIron Technorati Twitter Yahoo 91
92 Zend_Service_Yahoo Search the web with Yahoo Get your application ID from Class uses Zend_Rest_Client under the covers Returns Zend_Service_Yahoo_WebResultSet containing instances of Zend_Service_Yahoo_WebResult $yahoo = new Zend_Service_Yahoo("YAHOO_APPLICATION_ID"); $results = $yahoo->websearch('ibm PHP', array('results' => 10', 'start' => 1)); foreach ($results as $result) { echo '<b>'. $result->title. '</b> '. $result->url. '<br />'; } 92
93 Results from $yahoo->websearch 93
94 How to start a ZF project 94
95 Start the right way with Zend Studio for Eclipse Creates a complete hello world application for you Leverage the ZF development team s best practices 95
96 Resources: online Official information: framework.zend.com/docs/quickstart zend.com/resources/webinars Community tutorials and answers: zfforums.com devzone.zend.com 96
97 Path to ZF Jump in Have a pilot project in mind Take a ZF training class Get mentoring from someone savvy in both ZF and i Stay connected Join a ZF community, either online or a Meetup in person Subscribe to Zend s ZF support if it s a mission-critical app 97
98 Questions? Leave feedback at joind.in/900 For free PHP/i tips, write to PHP/i blog and articles: alanseiden.com LinkedIn: linkedin.com/in/alanseiden SBS office phone:
Why Use Zend Framework?
Why Use Zend Framework? Alan Seiden PHP on IBM i consultant/developer email: [email protected] blog: http://alanseiden.com Strategic Business Systems, Inc. Developing Web apps on IBM i (and iseries, i5...)
PHP on IBM i: What s New with Zend Server 5 for IBM i
PHP on IBM i: What s New with Zend Server 5 for IBM i Mike Pavlak Solutions Consultant [email protected] (815) 722 3454 Function Junction Audience Used PHP in Zend Core/Platform New to Zend PHP Looking to
Building Rich Internet Applications with PHP and Zend Framework
Building Rich Internet Applications with PHP and Zend Framework Stanislav Malyshev Software Architect, Zend Technologies IDG: RIAs offer the potential for a fundamental shift in the experience of Internet
Drupal 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
PHP Case Study on IBM i
PHP Case Study on IBM i Alan Seiden Specialist, PHP on IBM i [email protected] New England Midrange User Group (NEMUG) February 17, 2010 Strategic Business Systems, Inc. IBM Business Partner Provides
Develop PHP mobile apps with Zend Framework
Develop PHP mobile apps with Zend Framework Enrico Zimuel Senior PHP Engineer, Zend Technologies Zend Framework Core Team http://framework.zend.com http://www.zend.com About me Enrico Zimuel (@ezimuel)
Secure Application Development with the Zend Framework
Secure Application Development with the Zend Framework By Stefan Esser Who? Stefan Esser from Cologne / Germany in IT security since 1998 PHP core developer since 2001 Month of PHP Bugs/Security and Suhosin
Browser tools that make web development easier. Alan Seiden Consulting alanseiden.com
Browser tools that make web development easier alanseiden.com My focus Advancing PHP on IBM i PHP project leader, Zend/IBM Toolkit Contributor, Zend Framework DB2/i enhancements Developer, Best Web Solution,
Zend 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
HOW TO CREATE THEME IN MAGENTO 2
The Essential Tutorial: HOW TO CREATE THEME IN MAGENTO 2 A publication of Part 1 Whoever you are an extension or theme developer, you should spend time reading this blog post because you ll understand
Installation and Administration Guide
Installation and Administration Guide Release 8 This installation guide will walk you through how to install and deploy Conga Composer, including recommended settings for the application. Contact Support:
Drupal Performance Tuning
Drupal Performance Tuning By Jeremy Zerr Website: http://www.jeremyzerr.com @jrzerr http://www.linkedin.com/in/jrzerr Overview Basics of Web App Systems Architecture General Web
FileMaker Server 12. Custom Web Publishing with PHP
FileMaker Server 12 Custom Web Publishing with PHP 2007 2012 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks
This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.
20486B: Developing ASP.NET MVC 4 Web Applications Course Overview This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. Course Introduction Course Introduction
FileMaker Server 9. Custom Web Publishing with PHP
FileMaker Server 9 Custom Web Publishing with PHP 2007 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker,
Magento Theme EM0006 for Computer store
Magento Theme EM0006 for Computer store Table of contends Table of contends Introduction Features General Features Flexible layouts Main Menu Standard Blocks Category Menu and Category Layered Menu. HTML
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun ([email protected]) Sudha Piddaparti ([email protected]) Objective In this
Web Performance First Aid. Alan Seiden Consulting alanseiden.com
alanseiden.com My focus Advancing PHP on IBM i PHP project leader, Zend/IBM Toolkit Contributor, Zend Framework DB2/i enhancements Developer, Best Web Solution, IBM/Common Authority, subsecond web performance
SuiteCRM 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
Design and Functional Specification
2010 Design and Functional Specification Corpus eready Solutions pvt. Ltd. 3/17/2010 1. Introduction 1.1 Purpose This document records functional specifications for Science Technology English Math (STEM)
Elgg 1.8 Social Networking
Elgg 1.8 Social Networking Create, customize, and deploy your very networking site with Elgg own social Cash Costello PACKT PUBLISHING open source* community experience distilled - BIRMINGHAM MUMBAI Preface
Software Development & Education Center PHP 5
Software Development & Education Center PHP 5 (ADVANCE) Detailed Curriculum Advance PHP JQuery Basics Of JQuery Including the JQuery Library Code in an HTML Page JQuery Utilities Faster, Simpler, More
Speed up your web site. Alan Seiden Consulting alanseiden.com
alanseiden.com Alan s PHP on IBM i focus Consultant to innovative IBM i and PHP users PHP project leader, Zend/IBM Toolkit Contributor, Zend Framework DB2 enhancements Award-winning developer Authority,
tibbr Now, the Information Finds You.
tibbr Now, the Information Finds You. - tibbr Integration 1 tibbr Integration: Get More from Your Existing Enterprise Systems and Improve Business Process tibbr empowers IT to integrate the enterprise
Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues
Zend Server 4.0 Beta 2 Release Announcement Thank you for your participation in the Zend Server 4.0 beta program. Your involvement will help us ensure we best address your needs and deliver even higher
SOA, case Google. Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901.
Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901 SOA, case Google Written by: Sampo Syrjäläinen, 0337918 Jukka Hilvonen, 0337840 1 Contents 1.
PHP 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
FileMaker Server 13. Custom Web Publishing with PHP
FileMaker Server 13 Custom Web Publishing with PHP 2007 2013 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks
To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.
Znode Multifront - Installation Guide Version 6.2 1 System Requirements To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server
Shop Manager Manual ConfigBox 3.0 for Magento
Shop Manager Manual ConfigBox 3.0 for Magento Table of Contents 1 INTRODUCTION... 4 2 INSTALLATION... 5 2.1 How to check if ioncube Loader is installed... 5 2.1.1 What to do if ioncube Loader is not installed...
Developing ASP.NET MVC 4 Web Applications MOC 20486
Developing ASP.NET MVC 4 Web Applications MOC 20486 Course Outline Module 1: Exploring ASP.NET MVC 4 The goal of this module is to outline to the students the components of the Microsoft Web Technologies
OpenText Information Hub (ihub) 3.1 and 3.1.1
OpenText Information Hub (ihub) 3.1 and 3.1.1 OpenText Information Hub (ihub) 3.1.1 meets the growing demand for analytics-powered applications that deliver data and empower employees and customers to
Advantages of PML as an iseries Web Development Language
Advantages of PML as an iseries Web Development Language What is PML PML is a highly productive language created specifically to help iseries RPG programmers make the transition to web programming and
INTRODUCTION TO ATRIUM... 2 SYSTEM REQUIREMENTS... 2 TECHNICAL DETAILS... 2 LOGGING INTO ATRIUM... 3 SETTINGS... 4 NAVIGATION PANEL...
INTRODUCTION TO ATRIUM... 2 SYSTEM REQUIREMENTS... 2 TECHNICAL DETAILS... 2 LOGGING INTO ATRIUM... 3 SETTINGS... 4 CONTROL PANEL... 4 ADDING GROUPS... 6 APPEARANCE... 7 BANNER URL:... 7 NAVIGATION... 8
Instant Chime for IBM Sametime Installation Guide for Apache Tomcat and Microsoft SQL
Instant Chime for IBM Sametime Installation Guide for Apache Tomcat and Microsoft SQL Spring 2015 Copyright and Disclaimer This document, as well as the software described in it, is furnished under license
System Administration Training Guide. S100 Installation and Site Management
System Administration Training Guide S100 Installation and Site Management Table of contents System Requirements for Acumatica ERP 4.2... 5 Learning Objects:... 5 Web Browser... 5 Server Software... 5
Pete Helgren [email protected]. Ruby On Rails on i
Pete Helgren [email protected] Ruby On Rails on i Value Added Software, Inc 801.581.1154 18027 Cougar Bluff San Antonio, TX 78258 www.valadd.com www.petesworkshop.com (c) copyright 2014 1 Agenda Primer on
Short notes on webpage programming languages
Short notes on webpage programming languages What is HTML? HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is a markup language A markup language is a set of
Web 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
How To Use Titanium Studio
Crossplatform Programming Lecture 3 Introduction to Titanium http://dsg.ce.unipr.it/ http://dsg.ce.unipr.it/?q=node/37 [email protected] 2015 Parma Outline Introduction Installation and Configuration
FileMaker 11. ODBC and JDBC Guide
FileMaker 11 ODBC and JDBC Guide 2004 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered
J 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
PHP Batch Jobs on IBM i. Alan Seiden Consulting alanseiden.com
alanseiden.com Alan s PHP on IBM i focus Consultant to innovative IBM i and PHP users PHP project leader, Zend/IBM Toolkit Contributor, Zend Framework DB2 enhancements Award-winning developer Authority,
Plugin Integration Guide
Plugin Integration Guide Revision History Version Date Changed By Comments/Reason 1.0 16/09/14 NZB Created 1.01 01/10/ This document describes the implementation requirements for the mobicred Magento Plugin,
Content Management System
Content Management System XT-CMS INSTALL GUIDE Requirements The cms runs on PHP so the host/server it is intended to be run on should ideally be linux based with PHP 4.3 or above. A fresh install requires
Localizing dynamic websites created from open source content management systems
Localizing dynamic websites created from open source content management systems memoqfest 2012, May 10, 2012, Budapest Daniel Zielinski Martin Beuster Loctimize GmbH [daniel martin]@loctimize.com www.loctimize.com
FileMaker 12. ODBC and JDBC Guide
FileMaker 12 ODBC and JDBC Guide 2004 2012 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker, Inc.
About ZPanel. About the framework. The purpose of this guide. Page 1. Author: Bobby Allen ([email protected]) Version: 1.1
Page 1 Module developers guide for ZPanelX Author: Bobby Allen ([email protected]) Version: 1.1 About ZPanel ZPanel is an open- source web hosting control panel for Microsoft Windows and POSIX based
Developing ASP.NET MVC 4 Web Applications
Course M20486 5 Day(s) 30:00 Hours Developing ASP.NET MVC 4 Web Applications Introduction In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools
phpservermon Documentation
phpservermon Documentation Release 3.1.0-dev Pepijn Over May 11, 2014 Contents 1 Introduction 3 1.1 Summary................................................. 3 1.2 Features..................................................
User 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
Choosing 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
SQL Injection Attack Lab Using Collabtive
Laboratory for Computer Security Education 1 SQL Injection Attack Lab Using Collabtive (Web Application: Collabtive) Copyright c 2006-2011 Wenliang Du, Syracuse University. The development of this document
Skynax. Mobility Management System. System Manual
Skynax Mobility Management System System Manual Intermec by Honeywell 6001 36th Ave. W. Everett, WA 98203 U.S.A. www.intermec.com The information contained herein is provided solely for the purpose of
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
PHP Batch Jobs on IBM i
PHP Batch Jobs on IBM i Alan Seiden PHP on IBM i consultant/developer email: [email protected] blog: http://alanseiden.com Strategic Business Systems, Inc. Developing Web apps on IBM i (and iseries, i5...)
PORTAL ADMINISTRATION
1 Portal Administration User s Guide PORTAL ADMINISTRATION GUIDE Page 1 2 Portal Administration User s Guide Table of Contents Introduction...5 Core Portal Framework Concepts...5 Key Items...5 Layouts...5
Zend Framework - Advanced Concepts courses
Spring/Summer 2012 Zend Course Catalog 2006-2012 Zend Technologies, Inc. All rights reserved. version 1.0 Table of Contents Table of Contents 2 Introduction 3 Mission Statement 3 Available Courses and
Bubble Full Page Cache for Magento
User Guide Author: Version: Website: Support: Johann Reinke 2.2 https://www.bubbleshop.net [email protected] Table of Contents 1 Introducing Bubble Full Page Cache... 3 1.1 Features... 3 1.2 Compatibility...
TechTips. Connecting Xcelsius Dashboards to External Data Sources using: Web Services (Dynamic Web Query)
TechTips Connecting Xcelsius Dashboards to External Data Sources using: Web Services (Dynamic Web Query) A step-by-step guide to connecting Xcelsius Enterprise XE dashboards to company databases using
Rails Cookbook. Rob Orsini. O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo
Rails Cookbook Rob Orsini O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword : ; xi Preface ; ;... xiii 1. Getting Started 1 1.1 Joining the Rails Community
Web 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
New PHP Toolkit from Zend and IBM Open source on IBM i. Alan Seiden PHP on IBM i consultant Strategic Business Systems, Inc.
New PHP Toolkit from Zend and IBM Open source on IBM i Alan Seiden PHP on IBM i consultant Strategic Business Systems, Inc. http://alanseiden.com @alanseiden About Alan PHP on IBM i consultant Lead PHP
Ruby 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
1: 2: 2.1. 2.2. 3: 3.1: 3.2: 4: 5: 5.1 5.2 & 5.3 5.4 5.5 5.6 5.7 5.8 CAPTCHA
Step by step guide Step 1: Purchasing a RSMembership! membership Step 2: Download RSMembership! 2.1. Download the component 2.2. Download RSMembership! language files Step 3: Installing RSMembership! 3.1:
Implementing Moodle on a Windows High Availability Environment
Implementing Moodle on a Windows High Availability Environment Implementing Moodle 1.9 on 2 Microsoft Load Balanced Web Front End Server and a Microsoft SQL Server 2008 R2 Cluster environment Written by:
DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group
DevOps Best Practices for Mobile Apps Sanjeev Sharma IBM Software Group Me 18 year in the software industry 15+ years he has been a solution architect with IBM Areas of work: o DevOps o Enterprise Architecture
Sugar Professional. Approvals + + + + Competitor tracking + + + + Territory management + + + + Third-party sales methodologies + + + +
Professional Corporate Enterprise Ultimate List price / user / month $35 $45 $60 $150 List price / user / year (contractual term) $420 $540 $720 $1,800 Application or user limits no limits no limits no
Certified 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,
Configuring Microsoft IIS 5.0 With Pramati Server
Configuring Microsoft IIS 5.0 With Pramati Server 46 Microsoft Internet Information Services 5.0 is a built-in web server that comes with Windows 2000 operating system. An earlier version, IIS 4.0, is
Generate Android App
Generate Android App This paper describes how someone with no programming experience can generate an Android application in minutes without writing any code. The application, also called an APK file can
Manage Website Template That Using Content Management System Joomla
Manage Website Template That Using Content Management System Joomla Ahmad Shaker Abdalrada Alkunany Thaer Farag Ali الخالصة : سىف نتطشق في هزا البحث ال هفاهين اساسيت كيفيت ادساة قىالب الوىاقع التي تستخذم
How To Create A Simple Module in Magento 2.0. A publication of
How To Create A Simple Module in Magento 2.0 A publication of Mageno 2.0 was officially launched in 18 th December 2014, which is a hot event to Magento community. To understand more about which will be
Bring 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 [email protected] Insert->Header 1 & Footer Audience Manager looking for Intranet/place to put stuff Developers
HTSQL is a comprehensive navigational query language for relational databases.
http://htsql.org/ HTSQL A Database Query Language HTSQL is a comprehensive navigational query language for relational databases. HTSQL is designed for data analysts and other accidental programmers who
Building A Very Simple Web Site
Sitecore CMS 6.2 Building A Very Simple Web Site Rev 100601 Sitecore CMS 6. 2 Building A Very Simple Web Site A Self-Study Guide for Developers Table of Contents Chapter 1 Introduction... 3 Chapter 2 Building
ProxiBlue Dynamic Category Products
ProxiBlue Dynamic Category Products Thank you for purchasing our product. Support, and any queries, please log a support request via http://support.proxiblue.com.au If you are upgrading from a pre v3 version,
WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT
CHAPTER 1 WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT SharePoint 2013 introduces new and improved features for web content management that simplify how we design Internet sites and enhance the
Data Driven Success. Comparing Log Analytics Tools: Flowerfire s Sawmill vs. Google Analytics (GA)
Data Driven Success Comparing Log Analytics Tools: Flowerfire s Sawmill vs. Google Analytics (GA) In business, data is everything. Regardless of the products or services you sell or the systems you support,
DreamFactory & Modus Create Case Study
DreamFactory & Modus Create Case Study By Michael Schwartz Modus Create April 1, 2013 Introduction DreamFactory partnered with Modus Create to port and enhance an existing address book application created
Tivoli Endpoint Manager BigFix Dashboard
Tivoli Endpoint Manager BigFix Dashboard Helping you monitor and control your Deployment. By Daniel Heth Moran Version 1.1.0 http://bigfix.me/dashboard 1 Copyright Stuff This edition first published in
T14 RUMatricula Phase II. Section 1 Metaphor and requirements
Section 1 Metaphor and requirements RUMatricula is a system that aims at replacing current UPRM terminal-based course selection software with a web-based and mobile-friendly alternative that is simple
What 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
Online shopping store
Online shopping store 1. Research projects: A physical shop can only serves the people locally. An online shopping store can resolve the geometrical boundary faced by the physical shop. It has other advantages,
BreezingForms Guide. 18 Forms: BreezingForms
BreezingForms 8/3/2009 1 BreezingForms Guide GOOGLE TRANSLATE FROM: http://openbook.galileocomputing.de/joomla15/jooml a_18_formulare_neu_001.htm#t2t32 18.1 BreezingForms 18.1.1 Installation and configuration
Connect Getting Started Guide. Connect 2.1.1 Getting Started Guide
Connect 2.1.1 Getting Started Guide Page 1 of 22 Internetware Limited, 2008 Welcome...3 Introduction...3 What s new in 2.1...3 Technical Requirements...4 How does Connect work?...5 Application Connectors...5
Advanced 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
Sugar Professional. Approvals + + + + Competitor tracking + + + + Territory management + + + + Third-party sales methodologies + + + +
Professional Corporate Enterprise Ultimate List price / user / month $35 $45 $60 $100 List price / user / year (contractual term) $420 $540 $720 $1,200 Application or user limits no limits no limits no
Cross Site Scripting (XSS) and PHP Security. Anthony Ferrara NYPHP and OWASP Security Series June 30, 2011
Cross Site Scripting (XSS) and PHP Security Anthony Ferrara NYPHP and OWASP Security Series June 30, 2011 What Is Cross Site Scripting? Injecting Scripts Into Otherwise Benign and Trusted Browser Rendered
www.store.belvg.com skype ID: store.belvg email: [email protected] US phone number: +1-424-253-0801
www.store.belvg.com skype ID: store.belvg email: [email protected] US phone number: +1-424-253-0801 1 Table of Contents User Guide Table of Contents 1. Introduction to Facebook Connect and Like Free... 3
Web Development. How the Web Works 3/3/2015. Clients / Server
Web Development WWW part of the Internet (others: Email, FTP, Telnet) Loaded to a Server Viewed in a Browser (Client) Clients / Server Client: Request & Render Content Browsers, mobile devices, screen
Q&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
Installing an open source version of MateCat
Installing an open source version of MateCat This guide is meant for users who want to install and administer the open source version on their own machines. Overview 1 Hardware requirements 2 Getting started
Secure Messaging Server Console... 2
Secure Messaging Server Console... 2 Upgrading your PEN Server Console:... 2 Server Console Installation Guide... 2 Prerequisites:... 2 General preparation:... 2 Installing the Server Console... 2 Activating
