The large PHP community in South Florida has organized its sixth annual PHP developer conference in Miami, and you're invited! We will host some of the best speakers, latest technology, and up to date news in the industry. And did we mention it is in Miami, in February? #warm #sunny

Thursday 8th February 2018

09:00 Start testing your PHP code
Workshop by Jason McCreary in Grand Ballroom (3 hour)

In this workshop we'll cover different ways to test your PHP code. Our focus will be the tools and writing tests - we won't get caught up in all the testing dogma. Instead, we'll create a foundation in tools like PHPUnit, Mockery, and Codeception so you can make the decisions about what testing tools and strategies work best for you and your code. So if you're looking to start testing your PHP code, or learn other PHP testing tools, this workshop is for you.

Building Modern APIs in Expressive
Workshop by Rob Allen in Key Biscayne 1 (3 hour)

Modern applications increasingly require an API, whether to support rich client-side experiences, mobile apps, or to integrate with other systems, and PHP is evolving to be an excellent tool for this job. This tutorial will cover the fundamentals of building a really excellent and robust API in PHP including how to handle media types, authentication and errors appropriately. We'll use Expressive since it uses the PSR-7 HTTP message interfaces, includes routing and a dependency injection container, and combined with its elegant middleware patterns it makes a very lightweight but solid foundation for our project. During the session you will build your own simple, working API and gain the skills that you can take back to the office to implement APIs of all kinds.

Dive into Symfony 4 & Flex!
Workshop by Ryan Weaver in Key Biscayne 2 (3 hour)

Symfony 4 is out! And it's the best Symfony ever! Faster! Re-imagined developer experience! And easier to create the feature you need! In this workshop, we'll bootstrap a new Symfony app and learn about Symfony Flex: the secret behind the fact that Symfony automatically scales from a "microframework" to a "macroframework" as your app grows. We'll also leverage the new dependency injection features that will let us build the same high-quality features in a fraction of the time and code. Let's rock!

Guide to UX Testing with Assistive Technology
Workshop by Andrea Skeries in Keywest Ballroom (3 hour)

An accessible website opens the door for millions more people to engage in your site content. In many cases, it is also a legal requirement. Learn testing techniques to check your website for ADA, Section 508 and WCAG 2.0 compliance. During this workshop you will hone your manual testing skills as well as learn about automated testing tools.

13:00 Defensive Coding Crash Course
Workshop by Mark Niebergall in Grand Ballroom (3 hour)

Ensuring software reliability, resiliency, and recoverability is best achieved by practicing effective defensive coding. Take a crash course in defensive coding with PHP and learn about attack surfaces, input validation, canonicalization, secure type checking, external library vetting, cryptographic agility, exception management, code reviews, and unit and behavioral testing. Learn some helpful tips and tricks from experienced professionals within the PHP community as we review the latest blogs and discussions on best practices to defend your project.

Create an API-centric System for Web and Mobile
Workshop by Christian Varela in Key Biscayne 1 (3 hour)

In this tutorial we start by defining an API with Apigility as our main engine, we will define all the details to make sure we set up our API so it can be consumed by our web application and our mobile application. We continue by creating a web application that will consume the API resources and how to define the flow from data consumption to views using Zend Framework. Then we will define a simple mobile app, which will consume the services from our API. For this we will use Sencha Touch. We will learn about the details to promote our App to the App store and Google play.

PHP Extension Writing
Workshop by Sara Golemon in Key Biscayne 2 (3 hour)

A step-by-step guide to writing extensions for PHP 7 along with some tips on migrating PHP 5 extensions into the future. Bring a laptop capable of compiling a stock build of PHP and ideas on specific topics you'd most like covered.

Friday 9th February 2018

Apple, Butter, Darmok: A communications primer for developers
Keynote by Cal Evans in Grand Ballroom (1 hour)

Star Trek, NATO, and kids party games; all of these things have one thing in common, communications. As a developer, learning to properly communicate is second only to learning to code in importance. Many of us however, learn to communicate our ideas long after we learn to code. In this opening talk, we'll discuss four important lessons to learn if you want to be able to properly and efficiently communicate your ideas with others. Come join us for "Apple, Butter, Darmok: A communications primer for developers"

10:15 Protect your API with OAuth2
Talk by Rob Allen in Grand Ballroom (1 hour)

OAuth 2 is the gold standard for authentication in APIs and in this talk we'll take a deep dive into how it works and how to implement an OAuth 2 server in your API. There are a number of work flows in OAuth 2 for different scenarios including mobile apps and websites connecting via JavaScript, so I will discuss each one and show you how to implement it. We'll also look how to use JWT which can provide performance improvements. By the end, you'll be well equipped to add OAuth2 to your API.

Talk by Dave Stokes in Key Biscayne 1 (1 hour)

MySQL 5.7 has been the most popular release but there are architectural and design issues that have caused issues for years. Version 8 is now available for testing and the biggest change is a true data dictionary (no more metadata in files) which means you can now have millions of tables in a schema (the bad news is that you can now have millions of tables in a schema). Plus there are roles, UTF8MB4 support, Invisible Indexes, are more to make your life better. Plus learn what happened to MySQL 6 and 7!

Securing Web Services: Fundamentals, Lessons Learnt, Common Vulnerabilities and Security Strategies
Talk by Amrita Jain in Key Biscayne 2 (1 hour)

In this three-part talk, we will first analyze the fundamentals of common security protocols such as Oauth1.0/2.0, Three-legged and Pin-based Auth. Next, we will review the security models of Facebook, Twitter and Google APIs in the light of the aforementioned protocols. Finally, we will apply our learnings to construct a comprehensive security model using a dedicated trust server, handshaking token, hierarchical security matrix and dynamic secret sharing.

11:30 Advanced PHP Simplified
Talk by Mark Niebergall in Grand Ballroom (1 hour)

Increase your PHP skills and improve your architecture as you learn why, when, and how to use advanced PHP features. Abstracts, interfaces, traits, namespaces, and dependency injection will each be discussed with code examples to help make using them simple. All these features will then be brought together to demonstrate clean coding. This will be a perfect presentation to help you sharpen your skill-set to include these tools to make your code even more clean, structured, and awesome!

Philosophy in Code: I Kant Even
Talk by Margaret Staples in Key Biscayne 1 (1 hour)

Coding in practice is a perpetual learning experience. The ongoing necessity of tackling new languages, frameworks, legacy codebases, etc. can be daunting. Immanuel Kant outlined some thought tools for making sense of and eventually conquering vast intellectual territory. I have found the application of these insights enormously helpful over many years and countless tricky knowledge bases. This talk will aim to pass along those tools and techniques, and make the first steps of your future challenges less intimidating.

Domain-Driven Data
Talk by Bradley Holt in Key Biscayne 2 (1 hour)

There are many types of databases and data analysis tools from which to choose today. Should you use a relational database? How about a key-value store? Maybe a document database? Or is a graph database the right fit for your project? What about polyglot persistence? Help! Applying principles from Domain-Driven Design such as strategic design and bounded contexts, this session will help you choose and apply the right data layer for your application's model or models. We'll explore traditional relational databases, graph databases, document databases, key/value stores, polyglot persistence, CQRS, event sourcing, and data layers for microservices.

13:30 How to Go from Developer to Stakeholder
Keynote by Ann Gaffigan in Grand Ballroom (1 hour)

Technology is everything these days, and your skills as a developer are in high demand. How can you leverage your unique skill set and understanding of technology to climb the ranks in your company beyond “just a developer?” Ann will tell her story of going from underpaid full-time developer, to broke freelancer, to entrepreneur, and finally to partner and CTO. More importantly, she’ll tell you what she learned along the way about the art of persuasion, transparency as a trojan horse, indispensability, confidence, standing your ground, and ultimately how to be treated and respected as a leader and not an employee.

Talk by Derick Rethans in Grand Ballroom (1 hour)

This session teaches you how to detect and debug PHP scripts with the open source tool Xdebug, focusing on the new features in Xdebug 2.5 and 2.6. The first part will quickly show how to get started with Xdebug. The second part of the session will cover detecting problems in your scripts by showing how Xdebug provides debugging aides in the form of stack/function traces, dumps of variables, modified PHP functions. In the last part I will show the remote debugger capabilities of Xdebug with different IDEs, where you can: set breakpoints on functions, methods and file/line combinations and evaluating error messages. On top of this you will also see how you can use Xdebug's profiler to find bottlenecks in your applications. I will be focusing on the least known features of Xdebug.

Make your application Expressive
Talk by Christian Varela in Key Biscayne 1 (1 hour)

Learn the concepts of PSR-7 middleware with Zend Expressive and how your application could be developed from scratch adapting those concepts with a new mindset. You will see the different approaches, advantages and disadvantages and the contrast of this paradigm and other more conventional paradigms.

Converting Your DEV Environment to a Docker Stack
Talk by Dana Luther in Key Biscayne 2 (1 hour)

Heard a lot about docker but not sure where to start? In this presentation we will go over the simplest ways to convert your development environment over to a docker stack, including support for full acceptance testing with Selenium. We’ll then go over how to modify the stack to mimic your production/pre-production environment(s) as closely as possible, and demystify working with the containers in the stack.

16:00 Containers are a pile of lies!
Talk by Larry Garfield in Grand Ballroom (1 hour)

Containers are all the rage these days. They’re fast, they make deployment easy, they handle dependencies, they slice, they dice, they make julienne fries! But... what are they? What exactly is a container and how does it work? Just how does a container differ from the “old” silver bullet, virtual machines? Here’s a hint: It has nothing to do with boats, or whales, or shipping. That’s all marketing fluff. Containers are simply a shorthand name for leveraging newer features of operating system kernels that let the OS lie to programs about how they’re running. In fact, all of modern software is built on lies. That’s what’s useful about it! To understand how that works, why it’s so useful, and where it’s not, let’s dive into how software actually works on a modern Linux system to see how those kernel features fit into the big picture, building up to “containers” along the way. Pull back the veil of lies and see how your computer really works.

Is the future of computing deviceless?
Talk by Ibis Fonte in Key Biscayne 1 (1 hour)

Did you know that the computer of the future does not have a keyboard or a mouse, and not even a monitor? As the world takes steps towards this new world of computing, many different products are hitting the market to show how touch, motion sensors, and human biosensory inputs are becoming a reality. Learn which products you can start to integrate into your applications to be at the bleeding edge of innovation. Find out what the market is doing that may disrupt your current business and get inspired with new ideas of your own to beat the competition. In this sneak peak at multiple technologies that are on the market today. Come and get your hands on some of the most exciting computing advances of today, including: OpenBCI - Brain Computer Interface Kinect Motion Sensors Bare Conductive Touch Microcontrollers Arduino Sensors Augmented Reality with Sphero Microsoft Hololens and more!

Practicing YAGNI (You Aren't Gonna Need It)
Talk by Jason McCreary in Key Biscayne 2 (1 hour)

We often have the tendency to over engineer our software. We want to use the latest packages, integrate with the hip services, and adopt those shiny patterns. I’m here to say, “you aren’t gonna need it”. YAGNI is a principle of eXtreme Programming that states "a programmer should not add functionality until necessary". In this talk we’ll take a look at what that means when writing code and how you can start practicing YAGNI to write better software.

TBD in Key Largo 4 (Uncon) (1 hour)


How PHP Ticks
Talk by Sara Golemon in Grand Ballroom (1 hour)

A look into the internals of PHP; How it came to be, how it works, and how PHP 7 leapt far out in front of its predecessor on performance and memory consumption with some thoughts on what's next for PHP 8.

How to beat memory bloat with generators
Talk by Korvin Szanto in Key Biscayne 1 (1 hour)

Memory usage is something that we as developers have to be aware of. Ever debugging a memory issue and find that your once small dataset has ballooned out of proportion? And instead of dealing with the issue, you opt for upping the memory limit? Iterators can be the answer but they require a lot of code and can be very difficult to understand at a glance. Thankfully since PHP 5.5 Generators help us create and manage what would be complex iterators with simple syntax sugar. In this talk I will go over some of the ways you can implement generators and cure your memory bloat.

Squash Accessibility Bugs
Talk by Andrea Skeries in Key Biscayne 2 (1 hour)

People perceive, operate, and understand web content in different ways. Is your site robust enough to give equal access to all visitors? Find out in this intro to web accessibility. Learn how to spot common barriers to access and how to fix them.

Panel Discussion in Grand Ballroom (1 hour)


Saturday 10th February 2018

09:00 How to Communicate When You are from Mars and the Business is from Venus
Keynote by Nancy Gaines in Grand Ballroom (1 hour)

Ever struggle getting the other team to understand you? Do you speak ‘techie’ while they speak ‘business’? Stop the language clash and frustrating misunderstandings with one simple technique. Discover how to communicate with ease, get what you want, and be more productive when working in Technology.

10:15 Let's Talk Scope
Talk by Alena Holligan in Grand Ballroom (1 hour)

Scope is a major factor in any application, from programing scope to project scope, and communication is key. We will discuss different application scopes including global, functional, class, and package scope. We'll demonstrate how namespaces fit into the scope and how everything ties together with communication of the project itself.

SlimPHP - When you don't need the kitchen sink
Talk by Joe Ferguson in Key Biscayne 1 (1 hour)

Full stack frameworks can often be too much for an application. What if you have a one off project that doesn't need "everything and the kitchen sink"? What if you have a large project you want to build yourself to be as lean as possible? Join us for an introduction into the Slim framework. We'll cover getting started, building a small application, and using components from bigger frameworks and other extraordinary sources.

Win Big, Cache Out
Talk by Ashley Hutson in Key Biscayne 2 (1 hour)

Caching can be a very complicated and loaded topic in Computer Science. There are many factors to consider from query caching, results caching, SQL caching, partial content caching, and full page caching. Look forward to finding out typically when, what, and where you should be caching and the best practices in implementing and how in PHP with various caching technologies(Redis, Memcached, and cloud based solutions). Always remember that you can over cache, so it is important to not go overboard as well.

10 Things I Hate About Your API
Talk by Amanda Folson in Grand Ballroom (1 hour)

You’ve built an API, launched it, and people aren’t excited about it. Why might that be? Many people release APIs for public consumption without any regard for developer experience. This creates a developer ecosystem that invites failure or worse -- it can encourage people to seek alternatives. This talk will cover common API pitfalls (spoiler, not all of them are code-related!) and how to create an environment around your API that will make developers happy.

A Review of Code Reviews
Talk by Chris Russell in Key Biscayne 1 (1 hour)

Code reviews are great! They make sure that fix takes just a little bit longer to merge. And you get to correct everybody else’s mistakes instead of writing your own code. And you get to hear EVERYBODY’s opinion on whitespace, AGAIN! Wait... why do we do this again? Take it from somebody who has been doing it since before it was cool -- it’s all worth it. Join me to discover the secrets to getting the most out of code reviews within your professional team. We’ll talk about tangible benefits, common challenges, and practical strategies for a smooth and effective review process.

Deploy Scalable and Secure PHP Applications with Kubernetes
Talk by Brent Shaffer in Key Biscayne 2 (1 hour)

You're not the DevOps guy, and you hate bash scripts. You want to deploy a scalable and secure PHP application, but you spend most your time in application code. This talk will show you just how easy it can be to achieve security and scalability in the PHP ecosystem using Docker containers. By the end of the talk, you'll be able to deploy an autoscaling Kubernetes cluster of PHP frameworks and microservices.

13:30 Forget accessibility - Think inclusive design
Keynote by Nic Steenhout in Grand Ballroom (1 hour)

Nicolas speaks about accessibility for people with disabilities, the current efforts by so many projects and conferences to include diversity, and how the term "accessibility" can create an "us vs them" mindset that doesn't benefit anyone. Using his experience working with people with disabilities and working on several FOSS projects and anecdotes, He'll paint a picture of where we've been, where we're at, and what the future may look like.

14:45 Cryptography For Beginners
Talk by Adam Englander in Grand Ballroom (1 hour)

Cryptography is a complex and confusing subject. In this talk you will learn about the core components of cryptography used in software development: securing data with encryption, ensuring data integrity with hashes and digital signatures, and protecting passwords with key derivation functions. While learning how to use these components, you will also learn the best practices that drive strong cryptography . This talk won’t make you a cryptography expert but it will give you the knowledge necessary to use cryptography properly. No prior knowledge of cryptography is required for this presentation.

The Voice-First Revolution: Building Google Assistant Apps Using JavaScript
Talk by Kesha Williams in Key Biscayne 1 (1 hour)

Hands-free is the future of Internet services due to the Artificial Intelligence (AI) discipline of natural language processing. Google Assistant, released in 2016, realizes the promise of voice as a more natural and frictionless way to interact with technology. Although not the first product of its type on the market, Google Assistant outshines its competitors. During this talk, learn how to interact with Google Assistant and the steps required to teach this AI to become smarter. This talk explores the creation of Actions and the API.AI platform by peaking under the covers of an existing Action. Attendees will hear from a developer's point of view, the major differences in development and implementation between Google Assistant and its competitors. Attendees are exposed to creating Actions using JavaScript and the Google Cloud Platform.

Functional programming for the Advanced Beginner
Talk by Luis in Key Biscayne 2 (1 hour)

Functional programming is in the mind of everyone. Each day there are more and more blog posts and articles are written on the subject. Topics such as "How to improve your PHP code using functional techniques," "Break problems down with composition," and many others dominate the scene. However, 90% of those articles include these mysterious terms such as monoids, monads, currying, referential transparency, composition, morphisms, and many others. In this talk, I will break down the terms that developers encounter daily when trying to learn FP. Whether you'd like to use it JavaScript, PHP, Hack, or Scala, understanding what these terms mean will allow you to reach the next level. By combining FP with your already mastered OO skills you can write unparallel code that, oddly enough, parallelizes extremely well! By the way, all of the code shown during this talk will use "modern" JavaScript, so you can also get to learn some ES6/ES7 while you're add it.

Automating Code Quality the Easy Way
Talk by David J Eddy in Key Largo 4 (Uncon) (30 minutes)

Using 3rd party services and web hooks to create a reliable, repeatable, and dependable code QA process.

Essential AWS for PHP Applications
Talk by Michael Moussa in Grand Ballroom (1 hour)

Have you ever thought "I'd like to use AWS for my PHP application, but it's so complicated!"? With over 70 distinct services available, how can you possibly learn them all or even decide which ones you need in the first place? Join me in this session as we grow a simple LAMP server into a scalable, fault-tolerant, highly-available, secure application stack on AWS. Whether you've already got some experience with AWS, or all you know so far is how to spell it, you'll walk away from this talk armed with the essentials for running PHP workloads on AWS!

Crescent Wrenches and Debuggers: Building Your Own Toolkit For Rational Inquiry
Talk by Kerri Miller in Key Biscayne 1 (1 hour)

Software exists in a constant state of failure, facing pressure on many fronts - malicious intruders, hapless users, accidental features, and our own limits of imagination all conspire to bring our system to a screeching halt. Untangle even the most tangled of Gordian Knots by building your own toolkit for inquiry, by relying on the simplest technique of all: asking “why?”

Virtual Machine, Container, or Serverless
Talk by Terrence Ryan in Key Biscayne 2 (1 hour)

One of the first challenges of moving your workloads to the Cloud is figuring out which three major flavors of computing technology to use: virtual machines, containers, or what is being called serverless. Each of these tools has its niche, its hype, and its downside. This session will tour application scenarios, discuss how each technology would handle them, consider the tradeoffs, and leave you with recommendations for which one to pick.

17:15 OSS Commerce Melee
Talk by Ben Marks in Grand Ballroom (1 hour)

Aimeos (Laravel). Drupal Commerce. Magento. OSCommerce. PrestaShop. Shopware. Sylius. WooCommerce. Bespoke. SaaS. It's no doubt that when a website needs a commerce component, open source provides the most control - but how do you know which one is the best choice? While it's easy to go with a system built on your favorite framework, it may not be the best choice based on business needs. This talk takes an objective look at the open source commerce ecosystem and provides a set of questions and guidelines to use to find the right system for your application.

Vulnerability Scanning for your Website
Talk by Lisa Bock in Key Biscayne 1 (1 hour)

Web sites are prone to security risks, and are a target for common attacks such as Cross Site Scripting, and SQL injection, which can result in exposure of sensitive data and even more aggressive attacks. Vulnerability scanning checks for known vulnerabilities and generates a report that the developer can use to fix web site vulnerabilities. Join Lisa Bock as she reviews some common scanners that even an average user can run. Vulnerability scanning is inexpensive, as most scanners are well under $1500, and many are free and can provide a great deal of information. Participants will learn that scanning a website to check for vulnerabilities is an important exercise, and regulations such as PCI, GLBA, Sarbanes Oxley, HIPAA or FISMA many times require periodic scanning. Vulnerability Scanning is an important first step in reducing overall risk, as most vulnerabilities can be addresses and reduced if not removed entirely.

You Were Lied To About Optimization
Talk by Chris Tankersley in Key Biscayne 2 (1 hour)

Many know of the famous quote, "Premature optimization is the root of all evil," but most people do not know the full quote or understand the context in which optimization is considered evil. As with anything in programming optimization is evil, maybe. Stop using excuses for slow code, and start to think about the places and tools that you can use to optimize. Thankfully there are are many different tools like xhprof, Valgrind, and others to help us out and properly optimize our code for those times when we need to dig deep into our code.

Closing Keynote
Keynote by Federico Lara in Grand Ballroom (1 hour)