Tutorials

Apigility Workshop

Matthew Weier O'Phinney & Julien Guittard|Monday October 19th 1:30pm-4:30pm|TBA

Your application likely needs an API or could benefit from one. Some of you may not know where to start, while others may have started and discovered how difficult it is. You have HTTP methods to juggle, content negotiation problems, and authentication and authorization to implement. Add concerns about pagination, documentation, and versioning, and you start wondering, "Where does it all end!?!"

Let Matthew Weier O'Phinney and Julien Guittard help you build your first API with Apigility. This hands-on workshop will teach how to create "all the things," leveraging the latest Apigility and Zend Framework releases to provide a minimalist architecture built on middleware.

Best practices for WordPress plugin development

Juliette Reinders Folmer|Monday October 19th 1:30pm-4:30pm|TBA

The WordPress plugin system allows you to add functionality to WordPress in a snap and turn it into much more than 'just a blogging platform'. Custom Post Types, Post Formats, Shortcodes, Custom Fields, Metaboxes are all ways to extend the functionality of WordPress.
In this tutorial we'll look at a number of best practices for building WordPress plugins and some common mistakes made. Bring your favorite plugin to improve or start building your own.

Building Development Environments with Docker

Josh Butts|Monday October 19th 9:00am-12:00pm|TBA

Lets face it, Docker is hot right now. If you’re itching to get started but aren’t sure how, you’ve come to the right place. In this tutorial, we’ll spend some time going over basic Docker concepts like Dockerfiles, containers, images and registries. Then we’ll use Docker Machine to provision a Docker environment on your laptop and set up a working development environment complete with database, PHP server and cache server. We’ll then learn how you can version, deploy and share this environment with your team, as well as options for leveraging your new tools for continuous integration as well.

DB2 and SQL in depth for PHP on IBM i

Alan Seiden|Monday October 19th 9:00am-12:00pm|TBA

Recent advances in DB2 and SQL can make PHP applications more secure, efficient, and require less code. Learn how to take advantage of your enterprise-grade database: DB2 for IBM i. This tutorial will show the right way to use DB2 with PHP. Topics include: RCAC row and column security built into DB2, techniques to reduce the amount of required boilerplate PHP database code, new features of DB2 and ibm_db2 that can make life easier for developers, detailed performance tips, prevention of SQL injection, library list options, connecting to IBM i's DB2 from Windows and Linux, how to link MySQL-based applications (Wordpress, etc.) to DB2, implementing pagination, using Zend\Db, and more. With new material presented for the first time anywhere.

From Monolith to Microservice

Jeff Carouth|Monday October 19th 1:30pm-4:30pm|TBA

You've got an unwieldy monolithic application. You realize you need to approach your code from a different direction; you need to employ services and a service oriented architecture. But how do you get there given your existing codebase? In this tutorial we'll look at the what, why, and how to take a monolithic application to a service-oriented application through the gradual introduction of services and microservices. Walking out of this tutorial you will have a better understanding of how to approach the problem of applying a new architecture to your codebase, and be ready to make the process manageable.

My app is secure...I think

Wim Godden|Monday October 19th 1:30pm-4:30pm|TBA

With more and more sites falling victim to data theft, you've probably read the list of things (not) to do to write secure code. But what else should you do to make sure your code and the rest of your web stack is secure ? In this tutorial we'll go through the basic and more advanced techniques of securing your web and database servers, securing your backend PHP code and your frontend javascript code. We'll also look at how you can build code that detects and blocks intrusion attempts and a bunch of other tips and tricks to make sure your customer data stays secure.

PHP 7

Cal Evans|Monday October 19th 1:30pm-4:30pm|TBA

PHP 7 is going to arrive sooner than you think. Get a jump on it with this tutorial. In this session we will cover the material necessary to take advantage of the new advanced capabilities introduced in PHP 7. This class will allow you to update your development plans right now and stay ahead of the competition.

Zend is already delivering nightly builds for developers, allowing them to start preparing their applications and test their code early. But are you really prepared for PHP 7? Don't settle for just getting the high-points. Understand which new features and benefits are introduced with PHP 7 and how they will affect you, so that you can start to set the stage for the incredible performance enhancements of PHP 7.

PHP Dependency Management with Composer

Clark Everetts|Monday October 19th 1:30pm-4:30pm|TBA

In this tutorial, Clark Everetts of Zend Technologies, provides a practical deep-dive into Composer, the Dependency Manager for PHP. We'll look at PHP source code dependency management by comparing it to how IBM i objects are typically managed, compare Composer to PEAR, and show how Composer helps you obtain the components your applications depend upon, install them into your project, and control their update to newer versions. We'll explain autoloading, demystify the keys in the composer.json file, and get you confidently using Composer, with practical examples all the way. When you leave this session, you will understand:

  • what PHP source code dependency management looks like, and what problem Composer solves,
  • how to install Composer on an IBM i system.
  • how to use Composer to install, update, and lock code dependencies to appropriate versions,
  • the difference between composer.json and composer.lock,
  • what Semantic Versioning means, and what those version numbers communicate to you as developer,
  • Packagist, the public clearing house for Composer-managed packages
  • setting up and using private repositories
  • considerations when using Composer in development vs. production environments
  • important do's and don'ts when using Composer

Scaling Magento - Reaching Peak Performance

Mathew Beane|Monday October 19th 9:00am-12:00pm|TBA

Building a cluster to support Magento is easy and makes a good example for scalable web application platforms.

I will walk through a typical Magento Cluster setup and provide Vagrant/Puppet configurations for the basic setup. Then I will cover some of the hardware and cloud resources that are required as the platform grows. We will move onto application choices, and some of the development, testing and deployment strategies that are required to have a successful clustered platform.

  • Hardware Vs Cloud: Exploring hardware and software options available for scaling.
  • Magento Application Best Practices
  • Cluster Architecture
  • Webserver: How to cluster your web application
  • Database: How to cluster Magento Database using Percona.
  • Redis: Introducing a Redis Cluster using Sentinel and Keepalived
  • Filesystem: NFS, NAS or other clustered filesystems.
  • Application Architecture: How to avoid angering your systems administrators
  • Testing: Using the Magento Performance Toolkit
  • Development and Deployment Process

The OOP in PHP

Matthew Turland|Monday October 19th 9:00am-12:00pm|TBA

While OOP dates back to the likes of Simula and Smalltalk, it's present in some form in most programming languages used for web development today. Among these is PHP, which saw an overhaul to its object system in version 5 and further additions in 5.3 and subsequent minor versions. This presentation covers general OOP concepts and principles using PHP's object model as an example.

Wax On, Wax Off: Code Kata Dojo

Yitzchok Willroth|Monday October 19th 9:00am-12:00pm|TBA

As software developers we tend to practice our craft in the way of doctors and lawyers rather than the way of athletes and musicians, failing to recognize the impact the trade offs and half measures dictated by many projects have on our growth as craftspeople. Code katas - deliberate practice, free of the pressures of "getting things done" - are an excellent way to strengthen our mental "muscle memory" and grow our craft. In this three hour workshop, we will examine the case for regular, deliberate practice and engage in guided, collaborative, hands-on learning designed to give you the skills to incorporate code katas and deliberate practice into your training regimen.

What happens in runtime DOESN'T stay in runtime

Amit Dar|Monday October 19th 9:00am-12:00pm|TBA

Zend Server Z-Ray is a ground-breaking technology that allows you to effortlessly inspect the context, performance and behavior of your code from the convenience of your browser, often taking away the need to use extra tools such as debuggers or profilers. Deep as it goes, however, it of course cannot be aware of any custom data structures or semantics that’s unique to your app or framework. Until now, that is. In the new version, Z-Ray comes with an extensive extensibility API that allows you to obtain *any* piece of data in your app, without having to modify a single line of code in it. In this Tutorial we will build and integrate a plugin for Z-Ray and learn how to ferret out that little bit of information that will turn useful into awesome.

Workshop : Build a REST API with Symfony

Sarah Khalil|Monday October 19th 1:30pm-4:30pm|TBA

Let's build a nice REST API with all the recent helper we can find.
First of all, we will take some time to see, in theory, what's asked to build a "good" Restfull API. Then we'll build an API managing resources of a company. The features we will be implementing are:

  • Create, Read, Update and Delete users,
  • Authenticate the user and authorize some of them to update and/or delete,
  • Serialize the resources in JSON => use groups of validation and custom handlers.

The goal is to see some code with the usage of :

  • FOSRestBundle, and save a lot of time;
  • JMS serializer and its awesome features;
  • the HATEOAS project, very nice to unlock the third level of the Richardson maturity model;
  • And finaly, a little bit of guzzle to ease communication between applications (going further with the SOA architecture).

The goal of that talk is to demystify all technologies in the "REST" galaxy.

Zend PHP 5.5 Certification Boot Camp (Part 1)

Christian Wenz|Monday October 19th 9:00am-12:00pm|TBA

The Zend PHP 5.5 Certification is the industry standard to test a candidate's knowledge of PHP and to aid employers to select suitable developers. Learn what it takes to become a Zend Certified Engineer (ZCE) by one of the authors of the certification! We will have a look at all topic areas, discuss common traps and required knowledge for each of them, and will provide you with background information on the test. The full-day tutorial will be conducted by the lead author of the certification and will feature a number of typical questions that resemble the layout of the actual test questions, giving you a realistic impression of the test itself and aiding you in self-assessing your current PHP knowledge. In addition, you will have the opportunity to take the test right at the conference (limited availability).

Zend PHP 5.5 Certification Boot Camp (Part 2)

Christian Wenz|Monday October 19th 1:30pm-4:30pm|TBA

The Zend PHP 5.5 Certification is the industry standard to test a candidate's knowledge of PHP and to aid employers to select suitable developers. Learn what it takes to become a Zend Certified Engineer (ZCE) by one of the authors of the certification! We will have a look at all topic areas, discuss common traps and required knowledge for each of them, and will provide you with background information on the test. The full-day tutorial will be conducted by the lead author of the certification and will feature a number of typical questions that resemble the layout of the actual test questions, giving you a realistic impression of the test itself and aiding you in self-assessing your current PHP knowledge. In addition, you will have the opportunity to take the test right at the conference (limited availability).

ZF2 Done Properly

Gary hockin|Monday October 19th 9:00am-12:00pm|TBA

Getting started with Zend Framework 2 is relatively easy. But once you have a basic CRUD application up and running where do you go from there? Knowing how you should build your application with maintainability and scalability in mind can be very daunting. But there **are** a number of hard and fast rules that you can use to help to factor you application into something that is functional, maintainable, and performant. In this tutorial we will take a pre-build ZF2 application straight from GitHub, and apply some simple(ish) rules to make a basic ZF2 application run in a more modern way. Say goodbye to `getServiceLocator` in your controllers, and say hello to the full power of dependency injection, event listeners and framework plugins.