Zendcon 2016 - Tutorials

A MySQL DBA primer

Ligaya Turmelle

Great! You've just been told that a new MySQL system needs to be installed. You already administer several database systems. You are the lucky one that gets to install MySQL and then deal with the inevitable problems the new system may have. The problem is not that you don't understand databases; the problem is that you need to understand MySQL and you need to understand it now.

In this tutorial, DBAs from other RDBMSs can learn what they need to know to manage and maintain a MySQL system. We will cover things like installation of the MySQL server, its basic architecture, security fundamentals for the system, handling backups, monitoring the system, and more.

Come along for the ride as we teach you the essentials of being a MySQL DBA.

All the Laravel things: up and running to making $$

Joe Ferguson

Laravel 5 has established itself as one of the best PHP rapid application development frameworks. Come learn about all the tools in the Laravel ecosystem designed to save you time and prevent you from writing the boring cruft you have to write for every application. We'll cover getting started with local development, building a basic application, and deploying to production. We'll review how Laravel easily handles vagrant, testing, oauth login services, billing and subscriptions services through Laravel Spark, and deploying your application with services such as Laravel Envoyer and Forge to manage your servers.

BDD with Behat for beginners

Adam Englander

Learn the basics of behavioral driven development (BDD) with Behat to build high quality and well documented applications. You'll learn how BDD can help you deliver greater business value more efficiently while accurately documenting the functionality of your application along the way. You'll learn how to utilize Behat as your BDD tool. With Behat, you'll create tests for the features in your application by utilizing a natural language syntax called Gherkin backed by PHP code to execute the steps executed in the feature's scenarios.

This will be a hands-on tutorial. You'll learn how to implement BDD for a web application. This will include utilizing Selenium WebDriver for real world multi-browser testing including introductions to Selenium Grid and hosted integration services utilizing Selenium.

Building APIs with Apigility

David Stockton

In this hands-on tutorial with Zend Framework 2 and Apigility, we'll build several working APIs and learn how Apigility can help you build REST (and RPC) APIs quickly, easily, and consistently. Since Apigility is opinionated, many decisions have been made which will reduce your cognitive load and help you focus on writing the interesting bits of code that make it all work. Attendees should come prepared with a computer running PHP 5.5 or later. Sample code to start and work from will be provided.

Building middleware applications with Zend Framework 3

Enrico Zimuel

Zend Framework 3 offers a new package to write PHP application using a middleware approach. This new package is zend-expressive, a micro-framework supporting the PSR-7 standard. In this tutorial we'll show how to build performant, well-structured, and reusable web applications using zend-expressive. We'll show how to design and implement simple web applications, web APIs, and complex web architectures using dependency injection containers, routing systems, and template adapters.

Building PHP daemons and long-running processes

Tim Lytle

In this hands-on tutorial, you'll learn how to stop abusing cron, and easily daemonize a PHP script that responds responsibly to process signals. There are things you don't want to, or can't do inside a web request. It could be a task that needs to be retired if it fails, maybe one that takes a significantly long time to process, or multiple jobs that need to be processed over time. Whether you're sending an email, processing a video, or consuming Twitter's streaming API - you should be using a separate process, and probably a daemon.

DB2 and SQL in depth for PHP on IBM i

Alan Seiden

Recent advances in DB2 and SQL can make PHP applications more secure, efficient, and require less code. Learn how to take advantage of a true 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.

Demystifying object-oriented programming

Alena Holligan

Abstraction, encapsulation, polymorphism, and interfaces: whether you've been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole object-oriented thing is way more complicated. Not only that, people that already understand it, act like it's so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session, we'll take you through real-life examples of object-oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilize object-oriented programming (OOP) immediately.

Docker for developers

Chris Tankersley

Thanks to tools like Vagrant, Puppet/Chef, and Platform as a Service (PaaS) services like Heroku, developers are extremely used to being able to spin up a development environment that is the same every time. What if we could go a step further and make sure our development environment is not only using the same software, but it's 100 percent configured and set up like production. Docker will let us do that, and so much more. We'll look at what Docker is, why you should look into using it, and all of the features that developers can take advantage of.

Getting Git

Jason McCreary

Version control is a must for development. With the popularity of services like GitHub, Git has become the top choice for version control. However, not everyone is as familiar with Git as they might want. In this talk, we'll explore everything from 'git init' to 'git bisect.' Through live demos we'll apply what we've learned to tackle everyday scenarios using Git. So whether you're just starting out with Git or a Git pro I guarantee you'll learn something.

Intro to Magento 2: Your first module

Ben Marks

Magento 2 is here, and it's time to dive in! Composer, PSRs, and a full test suite make Magento 2 easy and enjoyable to learn. The goal of this tutorial is to introduce the framework concepts of Magento 2 as a foundation for customizing and extending the application. There will also be plenty of commerce anecdotes to go around. Show up, participate, and walk out with both a working Magento 2 environment and module.

This tutorial is suitable for developers with or without Magento 1 experience. Familiarity with at least one PHP MVC framework is recommended. Source code is available, so you can follow along at your own pace.

PHP cert bootcamp I

Christian Wenz

The Zend PHP 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'll 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.

PHP cert bootcamp II

Christian Wenz

The Zend PHP 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'll 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.

PHP dependency management with Composer

Clark Everetts

Get a practical deep-dive into Composer, the dependency manager for PHP. We'll compare PHP source code dependency management to how IBM i objects are typically managed; compare Composer to global managers like PEAR, apt, and yum; 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 (friendly to all developers, including IBM i devs)
  • How to use Composer to install, update, and lock code dependencies to appropriate versions
  • Autoloading in general, Composer's autoloader in particular
  • 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

The enterprise Wor/d/thy/Press

Jeroen van Dijk

Like many others, WordPress has been my personal blogging tool for a long time. A powerful tool for easy publishing! That is what everyone wants.

Large sites like TechCrunch and TheNextWeb use it exactly for that reason. And more enterprises seem to discover it as good solution to their too-expensive publication tools. But keeping those WordPress instances running requires skills and knowledge.

Because of WordPress extendibility and its very active community, you can do this too. This tutorial will teach you how use Ansible, Composer, WP-CLI, WP REST API, Varnish, and Elasticsearch can push WordPress from a personal blogging tool into an enterprise-worthy level application. Out with FTP based SCM ... in with automated deployment, dependency management, and utterly fast search.

Zend Framework 2 certification launchpad

Gary Hockin

Give yourself a refresher in Zend Framework 2 before taking the certification. This tutorial is designed to take developers who are well versed in ZF2 to the point where they are confident in passing the ZFCA exam. This tutorial will refresh your knowledge of some of the more widely-used components, and will also cover some edge cases that you may have never used (or forgotten about). We'll also give you sample questions along the way, as well as advice on what to expect when you actually sit the exam. Good luck!