At its heart, php[world] is the Washington D.C. area conference for programmers who use the PHP programming language. We’ve been running annually since 2014, and are produced by a joint effort between php[architect] magazine, and One for All Events LLC.

Tuesday 22nd October 2019

09:00 Best Practices for Crafting High Quality PHP Apps
Workshop by James Titcumb (8 hour)

A separate ticket is required to attend this full-day training taking place Oct 22nd (the day before the conference) - https://world.phparch.com/register The Best Practices for Crafting Quality PHP Applications workshop is an interactive exploration into some conventions, processes, and habits that help make better quality software. Whilst there is no single silver bullet, we will spend time discussing, supported by some practical exercises, what improvements we can make. We’ll focus on three core areas; planning, development, and testing; using a variety of practical explorations, group discussion and showing you discoveries from my own experience. ### Equipment & Assumptions: The course is aimed at junior-to-mid developers who have a good grasp of writing software but want to learn techniques to make software less brittle and write fewer bugs. You will need a laptop or environment running: * At least PHP 7.2 * Xdebug * Composer ### Learning Objectives: * Planning techniques - communication, documentation, estimation * Development techniques - object calisthenics, types, static analysis, refactoring, naming * Testing techniques - testing legacy code, code coverage, mutation testing, acceptance testing * Code reviews * Deployment ### Deliverables: At the completion of this course, you will know how to … * Communicate better to explore specifications deeper * Use techniques such as “Event Storming” to explore specifications better * Write documentation before software with feature descriptions in Gherkin * Hone your estimations of software * Use techniques such as “Object Calisthenics” to write better code * Use types effectively to improve the developer experience * Use some techniques from “Domain-Driven Design” to model objects in software closer to the business world * Use static analysis tools such as phpstan or Psalm to discover bugs * Use some techniques to unit test legacy code * Use some techniques to write better acceptance tests * Understand code coverage better and what metrics are useful or not * Mutation test your codebase to discover how effective your unit tests are * Review code better * Automate deployments and CI

2
Artisan Bootcamp: Laravel from the Ground Up
Workshop by Joe Ferguson (8 hour)

A separate ticket is required to attend this full-day training taking place Oct 22nd (the day before the conference) - https://world.phparch.com/register This is an 8-hour training class for the Laravel framework. Attendees will start from scratch and get a tour of the Laravel ecosystem and work through exercising precisely designed to demonstrate the basics and work up to advanced framework patterns and tooling. We'll walk through building your first application and iterate slowly adding complexity and adding onto the application via building an API, authenticating users, protecting input forms with extensive data validation as well as testing the entire application to ensure confidence in our code. ### Equipment & Assumptions: Attendees should bring a computer with development tools and an environment capable of PHP 7+, MySQL, and Nginx/Apache already installed. The project will offer built-in support for Laravel Homestead https://laravel.com/docs/homestead a Vagrant based development environment. If you wish to use Homestead please follow the installation instructions BEFORE leaving for the conference. All skill levels are welcome, the only assumption is attendees know how to set up a local development environment to run PHP, connect and view a local database, and be familiar with their code editor of choice. ### Learning Objectives: * Tour of the Ecosystem and adjacent projects * Getting Started & spinning up a new project * Configuring Database connections & CRUD functionality via Laravel's Eloquent ORM * Tour of the framework features and functionality via coding exercises to implement features based on examples * Moving from local development to production ### Deliverables: After this training, you should be familiar with installing and running your own Laravel PHP applications. You will also have full access to the training exercises via Github.com code repository (You will need to give the instructor your Github.com username to be invited to the code Repository after the training day event). You will also have access to the slides for the entire day's training and contact information for further reading and where to get help, as well as next step suggestions for learning materials and platforms, to continue your Laravel journey!

Test Like You Never Tested Before (Because You Haven't)
Workshop by Steve Grunwell (8 hour)

A separate ticket is required to attend this full-day training taking place Oct 22nd (the day before the conference) - https://world.phparch.com/register Testing software in an automated fashion is one of the best ways to guarantee the quality, reduce bugs, and prevent regressions in our code, and is a prerequisite to operating in a Continuous Integration environment. Unfortunately, the most difficult parts of testing come right at the beginning: scaffolding a test suite and writing our very first tests. For those who are new to automated testing, these hurdles can prove overwhelming. This training Talk covers the fundamentals of testing, in a beginner-friendly way. We'll discuss how testing makes software better, the various levels of the Automation Pyramid, and discuss the characteristics of great tests. Then, we'll dive into a real application to write tests to support legacy code, practice TDD while developing a new feature, and using tests to help prevent regressions with our bugfixes. ### Prerequisites & Assumptions: It's assumed that attendees will have access to a computer with the ability to install a Laravel Homestead Vagrant environment (see https://laravel.com/docs/master/homestead). The application we'll be working on comes bundled with all of the necessary dependencies (including current versions of PHP, Node.js, PostgreSQL, etc.) in the virtual machine, but the host machine should have: * Git (https://git-scm.com/downloads) * Composer (https://getcomposer.org/download) * Vagrant (https://vagrantup.com) * One or more of the virtualization platforms supported by Laravel Homestead (https://laravel.com/docs/master/homestead#installation-and-setup) ### Learning Objectives: 1. Establish a good understanding of how well-written tests can produce more stable, manageable code 2. Familiarize attendees with the most common features of PHPUnit, along with test organization and execution strategies 3. Provide a real, working application that attendees may use to practice writing tests in common scenarios, including: - Writing tests around legacy code - Practicing Test-Driven Development (TDD) in building new features - Writing regression tests to effectively squash bugs ### Deliverables: At the end of the course, attendees will be confident in contributing to (or even starting) the automated test suite for a PHP application. Attendees will understand what, when, where, and how to test in a way that benefits the application without being overly rigid/brittle. Furthermore, they will leave with a fully-functional copy of our application, bundled with a well-documented, Laravel Homestead-powered development environment.

5
Achieving Undisturbed REST: The API Training
Workshop by Mike Stowe (8 hour)

A separate ticket is required to attend this full-day training taking place Oct 22nd (the day before the conference) - https://world.phparch.com/register Building an API is easy. Designing an API is hard. That's the motto of Undisturbed REST: a guide to designing the perfect API, and the book used by many of today's top enterprises to answer key questions and build a sustainable, efficient API that lasts. In this workshop we'll jump right in, tackling the questions you need to answer, looking at how to design your API, and learning from real examples from the field. And as a special bonus, each participant will receive a complimentary PDF version of the book to dig in and continue learning with and leave as a Certified API Specialist, Level 1. ### Topics Covered: - Introduction to APIs - Planning Your API - Designing the API Specification - Using RAML/ Open API - Prototyping and Agile Testing - Designing RESTful Resources - Handling Responses - Utilizing Hypermedia - Documenting Your API - Managing with a Proxy - Final Thoughts - Certification Exam

Wednesday 23rd October 2019

09:00
9
Pragmatic Optimism: How PHP Conquered the Web
Keynote by Samantha Quiñones in Fairfax A (1 hour)

Though it wasn’t originally conceived as a programming language after nearly a quarter-century PHP stands as one of the most popular languages in the world. Unlike its peers, it was not carefully designed but rather it grew organically under the guidance of a vast cast of contributors. Today, PHP is a serious and capable programming language, and its endurance speaks to the murky place where computer science meets software engineering. Let’s examine its history, how it got here, and where it’s going next.

10:00 The La(te)st PHP 7 — What's new in PHP 7.4
Talk by Derick Rethans in Fairfax A (1 hour)

During this presentation, we are going to look at the new features that are being introduced PHP 7.4. Join me to have a look at how the type system is strengthened with typed properties and co- and contra-variance of methods, what changes to operator precedence are, and which new features, such as pre-loading classes, are going to be introduced. At the end you will have a good understand about all the new and exciting features that are going to be part of the upcoming PHP 7.4 release.

0
Running Foundation Services with Kubernetes Operators
Talk by Josh Wood in Fairfax B (1 hour)

Kubernetes scales and manages stateless applications quite easily. Stateful applications require more work. Databases, caching systems, and file stores are harder to dynamically manage with data intact, and they sometimes have their own notion of clustering. Operators are Kubernetes agents that know how to deploy, scale, manage, backup, and even upgrade complex stateful applications. This session has the latest on the Operator pattern from Red Hat, adopted by many foundation applications like Rook, PostgreSQL, and others, and supported by the Operator Framework and SDK. We’ll also examine Operator Hub, an Operator App Store. A follow-along demonstration will show the installation and use of an Operator on a Kubernetes cluster. Operators make it easier to install and manage application components like databases, middleware, and file systems, and this talk will show you how to start using Operators for the foundation services your PHP application requires.

3
Essentials of Blockchain Technology
Talk by Lisa Bock in Ash Grove B (1 hour)

Blockchain technology was originally developed to protect financial data, such as bitcoin mining, to securely send transactions. In addition to using blockchains for financial transactions, we are now starting to see solutions that include using blockchain technology to secure communications between devices. Researchers are finding that we can use blockchains to provide authentication between devices and in any application that requires data integrity as it prevents spoofing. In this presentation, learn the history of blockchain, how blockchains work, along with some practical applications of blockchains.

3
Object Oriented Primer: Interfaces, Traits & Inheritance
Workshop by Sal Ferrarello in Ash Grove C (2 hours, 15 minutes)

Interfaces allow you to define the capabilities of an object. These definitions make it easier to write automated tests and help your code follow the Liskov substitution principle (the L in the five SOLID principles of object-oriented programming). We'll look at the how to define and implement an interface, we'll write automated tests using the interface to mock the object, and we'll swap out one object for another to see how the interface helps us make this change. We'll also cover the differences between Interfaces & Traits ... as well as review the basics of how Inheritance works as well. Come into this 2hr workshop with questions, and leave with a solid understanding of how PHP Objects work.

11:15 Asynchronous Awesome - Task Management in PHP
Talk by Eric Mann in Fairfax A (1 hour)

Sometimes, our use of PHP grows beyond the typical request/response cycle of dynamic page generation. Unfortunately, the threaded nature of PHP - and the stateless nature of the server - betrays any efforts to expand our utilization of the server. Image processing, video rendering, APNS (Apple Push Notification Service) integration - any of these can easily take longer than is reasonable for a simple page request. Enter tools like message and job queues that empower daemonized PHP workers to handle data processing in the background. Yet further tools enable long-running event loops and asynchronous Promise-driven operations. PHP isn’t multi-threaded, but that doesn’t mean you’re limited to a single-thread paradigm. I will demonstrate various use cases necessitating asynchronous operations, then delve into the code and the tools that make these systems work. Every attendee will leave armed with new ways to think about the management of large data jobs in PHP and an understanding of the tools they can use to make it happen.

The Path to Clean Code
Talk by Spencer Mortensen in Fairfax B (1 hour)

Many of us work with complex codebases that have some amount of technical debt. How do we clean up the code without breaking anything--while moving ahead with new features? What does the end goal look like, and how do we reach it?

2
Critical Thinking for Divergent Leaders
Talk by Kisha Allen in Ash Grove B (1 hour)

The brain is an invaluable asset that yields immeasurable results when strengthened and utilized. While the brain is powerful, it is highly underutilized as people rely more on machines to think for them. As a result, we are running on autopilot with very little thought. This robotic response to life and its problems, causes many to end up overwhelmed and to miss out on massive opportunities. Remove the barriers that are blocking your view and ultimately distorting your ability to see the full spectrum of possibilities. Leaders that desire to be more visible in their roles, while orchestrating their departments with ease, must become divergent. Divergent thinkers are powerful decision-makers, collaborators, and influencers that are able to step outside of problems to assess them from a higher vantage point. They are able to defer judgment and provide solutions amidst the emotional turmoil and power struggles that exist in the middle of major projects. Those that desire to stand out and advance in their respective industries must learn to leverage this powerful asset to courageously conquer the things that seek to rob them of their time, power, voice and fulfillment. LEARNING OBJECTIVES: By the end of this Talk, participants will… • Understand how to courageously become a free-thinker to generate a myriad of bold, new, creative, unique ideas and solutions • Learn how to avoid common decision-making and problem-solving barriers • Identify the most effective ways to conduct research, gather information and identify the best solutions

13:00
6
Panel: The Future of PHP
Keynote by Anthony Ferrara, Cal Evans, Samantha Quiñones, Derick Rethans (45 minutes)

We have assembled a group of experts & community members to discuss the future of where PHP is going. Of course, we won't be able to discuss the future without also going into PHP's past. Looking back at the last 25 years and discussing what made PHP the dominant web language today, and what we can do as a community to stay relevant in the next 25 years. Participants include: * __Anthony Ferrara__ - Core contributor to PHP who worked on adding strict types and strong password hashing to the project. * __Cal Evans__ - The 'Godfather of PHP', he has worked with the community for many years while being an evangelist for PHP at companies like Zend and php[architect]. * __Samantha Quiñones__ - Built software for some of the largest names in tech, recognized for her expertise by the Huffington Post and received the DCFT Powerful Female Programmers Award. * __Derick Rethans__ - Creator of Xdebug, core contributor for the date/time functions, and PHP 7.4 release manager.

14:00
3
WordPress Under Pressure: Tales of Sites at Scale
Talk by Maura Teal in Fairfax A (1 hour)

From working within the development team of a large WordPress media site, to handling solutions at a managed hosting platform, I’ll share challenges and solutions encountered when scaling WordPress to handle millions of visits. In this Talk we will also discuss scaling from both a performance and stability standpoint, and when adding hardware is —and isn’t— the solution. This talk will be cover how I utilized AWS services for stability, and will discuss the options of vertical versus horizontal scaling. I'll also touch on the benefits of caching as well.

1
Managing Your Manager
Talk by Robert Treat in Fairfax B (1 hour)

Product Managers, Project Managers, ScrumMasters, and sometimes even Engineering Managers. People whose job is primarily to support developers, and yet often these folks come from a background that includes zero technical experience. Under constant pressure to focus on "feature delivery" by folks from Sales, Marketing, and other various parts of the business, all too often the so-called "non-functional requirements" often fall by the wayside. Things like operability and sustainability can often fall by the wayside if developers aren't given the resources needed to make sure these things are baked in. But all is not lost. Many of the lessons learned from the DevOps movement can also be used to bring "Product" in-line with both developers and operators. Focusing across specific roles, we will look at the full life-cycle of development, deployment, incident response, and everything in support of that, and that affects planned work and the actual work that gets done. Methods for championing Ops needs while avoiding the classic "sky is falling" pattern of ops management will be looked at, including a look at unplanned work, how it affects your team, and how to make things flow.

Enums: PHP’s Missing Data Type
Talk by Andy Snell in Ash Grove B (1 hour)

PHP may not have a native data type for an enumerated type (“enum”), like other programming languages, but there are userland solutions we can leverage to get access to this powerful data type. We’ll see how representing things like statuses with enums provides immutability, improved readability, and type safety — preventing the kind of errors that happen with “magic strings” and class constants. In this Talk, we’ll be making our own immutable enums from scratch in order to explore the concept, but we’ll also introduce two libraries for use in your production code. We’ll also demystify the imposing-sounding “finite state machine” by using using immutable enum objects to regulate the transitions between statuses.

3
Automating your WebOps Workflows to Reduce Pain and Suffering
Talk by Brian Thompson in Ash Grove C (1 hour)

According to Cisco’s Visual Networking Index (VNI) report, by 2022 the internet at large will process 396 exabytes of traffic each month. For comparison, 2 years ago in 2017, we were only processing 122 exabytes per month. This substantial increase in traffic continues to put additional strain on websites as more and more of society expect information to be available at their fingertips. As developers, we must respond accordingly and continue to enhance our process. Come learn how to set up a continuous integration pipeline allowing you to focus on what we all enjoy — building websites, while not having to worry as much about testing, dependency management, or scaling your website to handle that burst of traffic when Selena Gomez tweets about your site

15:15
4
Test Driven Development 101
Talk by John Congdon in Fairfax A (1 hour)

A perfect paradigm for a new application, or a new feature into your existing app. Let's write our tests before we write the code so that it's already done and not something we are dreading to go back and add. Because, be honest, if you think the code is working, why add the tests later.

2
To Serve Humans: A Programming Cookbook
Talk by Andrew Cassell in Fairfax B (1 hour)

As developers, we often think about data, algorithms, and performance. Programs must be written for people read, and only incidentally for machines to execute. In this talk will look at many horrifying examples of developer code and recipes for improving the consumption of your code by other developers.

Developing a Culture of Mentorship
Talk by Tessa Kriesel in Ash Grove B (1 hour)

It’s easy to spend your entire day, heads down, coding projects without thinking twice about other developers around you. We often get too absorbed with completing our immediate deadlines to spend any time considering the future of our projects, the future of our teams. By not mentoring new developers we are failing our future. We are failing at providing new developers with the industry experience they need to be a one-day successful candidate for our teams. In this session, we will talk about: - Why your organization should hire junior developers - How to write better job descriptions for junior developers - How to create a mentorship program within your organization - Where to find mentors or junior developers seeking mentorship - How to be an effective mentor & mentee - Shocking statistics about our job outlook and developer market

1
JavaScript for PHP Devs: Let's Learn This
Workshop by Ashraf Abed in Ash Grove C (2 hours, 15 minutes)

When it comes to building app-like websites, JavaScript frameworks have taken the web by storm. Where does this leave seasoned PHP and CMS developers? Should we abandon our favored languages in favor of JS? Not necessarily; CMSs offer many stellar capabilities and are more than capable of standing on their own. Because many of the JS frameworks focus on front-end development, API-first CMSs like Drupal allow us to combine the best JS frameworks with our favorite frameworks. Empower yourself by learning the ins and outs of JS to enable yourself to dive into a JS framework. Certain things about JS seem strange when you are either new to programming or come from a PHP background: var, let, const, this, ES62015, ES6, asynchronous programming, various shorthand syntaxes, and more. We'll go over these and much more to prepare you for the brave new world of JS. In addition to learning the "how" of modern JS, we'll also learn about why so many people are integrating JS so heavily in their applications. What can JS do that PHP can't? And do JS frameworks really provide enough benefit that we should invest in CMS decoupling projects? We’ll use Drupal as the integration target for some of the examples in the workshop, but the main focus will remain on JavaScript and will be applicable to developers of WordPress, Joomla, or other PHP-based websites. This Talk is targeting: - People who know how to program in some language (such as PHP) - People who haven't used JS significantly recently, but may have learned/used it a while ago Attendees will walk away having learned: - About differences between modern JS and PHP - How JS is integrated with CMS-powered websites - What sort of benefits JS frameworks can provide to Content Management Systems like Drupal (along with a demo) - How to make informed decisions about when JS frameworks are appropriate for your projects

16:30 Hypermedia!
Talk by Adam Culp in Fairfax A (1 hour)

Sure, you have a great REST API. But now your API users have no idea what it is fully capable of. In fact, they are forced to search documentation to know what they can do next with the data you've provided in the responses. Ugh! Let's talk about hypermedia, and what should be done in modern PHP REST APIs. We'll investigate standards, and what is required to meet the Richardson Maturity Model. Plus, I'll show tools to help you get there.

1
Tools and Tips for Gluing Together the Open Web
Talk by Chris Hardie in Fairfax B (1 hour)

The web thrives most when we have full control of our information and what we share online. Yet every day we find ourselves using tools and services that don’t necessarily support or facilitate that ownership and control. “Why can’t my ___ just automatically share to my ____?!" The protocols and standards exist - RSS, APIs, structured import/export tools - but they don’t always play well together. In this talk, Chris Hardie will share some fun tools, software, and processes that he has built or encountered to make disparate software and services talk to each other. He’ll also suggest some tips and ideas for ensuring that your personal data isn’t any more locked up than it needs to be.

Build and Release Confidently with Continuous Integration and Delivery
Talk by Steve Grunwell in Ash Grove B (1 hour)

Continuous Integration (CI) and Continuous Delivery (CD) are the Holy Grail for software development teams: no matter who pushes the feature, the same tests are run, the same processes are followed, and nothing gets released without satisfying well-defined quality standards. Unfortunately, setting up that initial CI/CD workflow can be a bit daunting for teams that don't have an experienced DevOps engineer. Fear not, my dear developers! This talk breaks down the basic concepts of continuous integration, continuous delivery, and how to integrate them into your team's workflow. Whether you're working on a small side project or your next big idea, CI and CD can make the journey better. For this talk, we'll be using GitLab's (free) CI/CD pipelines, but the principles translate well to any major CI/CD platform!

Thursday 24th October 2019

09:00 Climbing the Abstract Syntax Tree
Talk by James Titcumb in Fairfax A (1 hour)

The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run. To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before. After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code. (*actual magic or time-warp not guaranteed)

0
MySQL's InnoDB Cluster
Talk by Dave Stokes in Fairfax B (1 hour)

InnoDB Cluster provides a highly available, fault tolerant way to keep your data save. You can either run it as a read/write split trio or as an active-active master-master multi primary. You will see how to set up sandbox cluster using the new MySQL Shell for testing and learn how to use either MySQL Router or Proxysql to provide a seamless way for your application to have high availability. Slides at https://www.slideshare.net/davestokes/mysql-innodb-cluster-php-world-2019

4
Enforcing Coding Standards with PHP_CodeSniffer
Talk by Sal Ferrarello in Ash Grove B (1 hour)

Using consistent coding standards throughout your project makes it easier and more enjoyable to review and contribute to. Trying to remember whether to use $camelCase or $snake_case variables or if the opening brace goes on its own line isn't any fun. By adding the PHP_CodeSniffer package to your project, you can ensure that consistent coding standards are used throughout the project. We'll look at how to add PHP_CodeSniffer and your choice of coding standards to your project.

Let's Build a Composer Package
Workshop by Ben Ramsey in Ash Grove C (2 hours, 15 minutes)

You've downloaded and installed open source libraries, required them as Composer dependencies, and perused the source code of countless GitHub repositories. Now, you're ready to help others by creating your own Composer package. So, what does it take to build and publish an open source library? In this Talk, we'll take a look at some of the common patterns open source PHP libraries follow. Along the way, we'll cover: evaluating libraries for quality, common filesystem structures, the importance of tests and how to run them on Travis CI, publishing to Packagist, interacting with a community, and more. By the end of this workshop, you will have all the tools you need to distribute your own Composer package.

10:15 Converting Your Dev Environment to a Docker Stack
Talk by Dana Luther in Fairfax A (1 hour)

Heard a lot about docker but not sure where to start? Frustrated maintaining development VMs? 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.

Xdebug 3.0 - Updates from the Author
Talk by Derick Rethans in Fairfax B (1 hour)

This talk is for developers who want to know how to debug their code in a better way, through single step debugging, profiling, and simpler debugging tools. Xdebug is a PHP extension that implements many debugging aids and features. In this presentation we are going to look at this new version of Xdebug 3. The new version is a near total rewrite, and brings many improvements over its older releases. You will learn how to optimally use the new features and settings to make your development life easier. Besides introducing the redone functionality, we will also have a cursory look at how these features are implemented, just to provide a better understanding of what a debugging extension, can, and cannot do.

0
Supporting Engineers with Mental Health Issues
Talk by Jenna Quindica in Ash Grove B (1 hour)

Discussing mental illness is uncomfortable, largely due to the stigma we perpetuate in society about mental illness. This talk will help you overcome that discomfort by examining and normalizing the most common mental health issues, providing resources for how you can get help for yourself, and discussing concrete actions you can take to best support your coworkers, friends, and family.

11:30 Web Application Security Update: Top Vulnerabilities
Talk by Eric Mann in Fairfax A (1 hour)

The Open Web Application Security Project (OWASP) curates a list of the top ten security risks for web applications and how to mitigate them. The ever-changing world of web development created a challenge for the 2017 list, which needs to combine both existing approaches and modern trends in web development. This Talk will have a look at each item in the list from a PHP perspective, demonstrate what can go wrong, and make sure that this won’t happen in our web sites. The Open Web Application Security Project (OWASP) curates a list of the top ten application security risks for web applications. It is a great place to start when developing a strong security stance for your application and team. Security is an ever-changing world and it's important to keep up to date with modern trends in mitigating vulnerabilities. With the attendees, we will look at each item in the list, and show: - How to detect the risk in your own code - How to patch or prevent the risk - Practical resources for taking further actions to protect your stack

Zombie Hunt: Find and Remove Dead Code and Dependencies
Talk by Andy Snell in Fairfax B (1 hour)

Over the lifecycle of just about every software project, technical debt, including dead code and dependencies, will accumulate. Zombie code can become a stumbling block to upgrading, refactoring, and maintaining your legacy code base, or worse, a potential security vulnerability. In this Talk, you’ll learn: * How to use tools, including ones built into your IDE, to find and evaluate code usage * How to “tombstone” code that /maybe/ isn’t completely dead * How to use composer to identify outdated dependencies * How to prevent having zombie code in your project in the first place

0
Building a Great Developer Experience
Talk by Jeremy Dorn in Ash Grove B (1 hour)

Have you ever used a tool or library that seemed to fight you every step of the way? Do you dread going near that one part of your codebase? Developer Experience captures how people feel when they work with a piece of code. It's usually not considered a high priority when building a product, but I argue that it's one of the most important factors in determining success. In this talk, I will go over examples and techniques you can use to build a truly great Developer Experience.

5
Presentation Skills for Brainiacs
Talk by Laura Foley in Ash Grove C (1 hour)

When was the last time you successfully explained what you do to someone unfamiliar with your profession? For some, it’s a struggle. Explaining yourself and your work in a way that’s clear, compelling, and relatable can be hard. When you’re speaking to clients, upper management, people in government, the general public, etc., it’s a problem if they can’t understand what you’re saying and don’t know what they’re supposed to do after your presentation. How can you simplify complex ideas without talking down to your audience? And how can you influence people to respond to your presentations the way you want them to? Presentation Skills for Brainiacs gives you the tools you need to develop easy-to-understand presentations that inspire your audiences to take action! In this interactive Talk, you’ll learn how to simplify your presentations and how address the needs of your audience. You’ll learn why less is more when it comes to slide design. And you’ll see before-and-after slide makeovers that put these lessons into practice. If you want to learn how to successfully communicate with and influence people outside of your profession, then Presentation Skills for Brainiacs is for you!

13:15
5
Panel: PHP and Frameworks
Keynote by Taylor Otwell, Fatima Khalid, Beth Soderberg, Ryan Weaver in Fairfax A (45 minutes)

While you finish your lunch, stay around to join us for a panel discussion that will include community members from various frameworks in PHP, such as Laravel, Symfony, Laminas, WordPress, and Drupal. Listen to creators, contributors, and community members discuss the role that frameworks have played over the past 25 years of PHP's history, as well as what they see as the future of frameworks for PHP. Participating in this panel: * Taylor Otwell - Creator of the Laravel PHP framework and its surrounding ecosystem, including Laravel Forge, Envoyer, Spark, Nova, and Vapor. * Fatima Khalid - Drupal core contribution mentor lead, DrupalCon program team, and Drupal Diversity & Inclusion leadership team member * Beth Soderberg - Co-organizer of WordCamp DC & WordPress DC Meetups and contributor to the WordPress Training Team. * Ryan Weaver - A member of the Symfony core team, lead to its documentation and tutorial writer for KnpUniversity.

14:15
4
Describe Your API with OpenAPI
Talk by Ben Ramsey in Fairfax A (1 hour)

No matter how big or small your API, no matter the audience, internal or external, you need to provide clear and precise documentation so that others know how to use it. Since its inception as Swagger almost ten years ago, OpenAPI has been steadily gaining ground as the de facto specification for describing REST APIs. Whether your API is yet to be built or has been around for a decade, OpenAPI is a tool you can use to document all the parts of your APIs. In this talk, I’ll introduce you to the basic concepts of OpenAPI, we’ll use it to create documentation for a simple API, and I’ll leave you with a few tips, tricks, and gotchas I’ve learned along the way. You should be able to take what you’ve learned and immediately begin describing your APIs with OpenAPI.

1
From Caesar Cipher to Quantum Cryptography
Talk by Joel Lord in Fairfax B (1 hour)

Humans of all times have used codes and ciphers. Some of the greatest wars in history have been won thanks to good encryption, or lost due to great cryptographers. Even if we don’t think about it, encryption and cryptography are a big part of our lives, now that https is the defacto standard for the web. While most modern developers want to ensure that their data is secured, most of them don’t understand how the data is encrypted or how cryptography works. During this talk, the attendees will understand where ciphers come from by going through a journey in the history of cryptography. With examples from the Caesar cipher all the way to quantum cryptography, the speaker will explain in simple terms how cryptography evolved into what it is today and how it should be used to secure user data.

3
Event Sourcing 101
Talk by John Congdon in Ash Grove B (1 hour)

Do you have data that you care about? Do you know how the data got into the state it's in? What that data used to be, when and how it changed? Event Sourcing is the technique to tracking your data, its history, and to give you the ability to unlock secrets you don't even know you have, want, or need. This will be a primer course to get you started.

Managing Modern Infrastructure with Ansible
Workshop by Joe Ferguson in Ash Grove C (2 hours, 15 minutes)

Join us as we dive into Ansible, the server management tool designed to help developers keep servers configured properly and running smoothly. We’ll cover the basics and dive into some in-depth configuration options so you can stop treating your servers like pets: which you constantly have to feed and water. Join us as we learn how to turn those pets into cattle in your server farm and turn your infrastructure into code!

15:30
4
API Platform: A Modern Framework for REST, GraphQL, OpenAPI & More!
Talk by Ryan Weaver in Fairfax A (1 hour)

Want to build an API that's modern, fully-featured, quick to create & that you *love* working with? Say hello to API Platform: an API-first framework built on top of Symfony that's pushing the boundaries of what an API looks like. In this talk, we'll get started with API Platform & see how - in 5 minutes - we can create a fully-featured CRUD for any resource (e.g. database table) in your app. That means 5 RESTful endpoints (with pagination & filters), automatic OpenAPI & JSON-LD Hydra support (Hypermedia) and interactive documentation with Swagger. Want GraphQL? Just activate it. Want Docker? It's a first-class citizen. Need to build progressive web apps? API Platform is an ecosystem for modern, API-driven SPA's and traditional apps. And... it's fun!

4
Philosophy in Code: I Kant Even
Talk by Margaret Staples in Fairfax B (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.

1
The IoT – How Web Developers Will Change Our World
Talk by Lisa Bock in Ash Grove B (1 hour)

The Internet of Things (IoT) represents the concept of a massive system where things on the Internet communicate through omnipresent sensors. In the past decade, consumers have connected millions of IoT devices to the Internet at an exponential rate, designed to improve the quality of life in homes and businesses. This presentation will explain how businesses invest heavily in IoT in order to keep a competitive edge, going into IoT developments in automobiles, building automation, the medical field along with consumer devices, such as wearables and mobile devices. As a developer you are part of this wave, as many devices are controlled via a web interface. This presentation provides overview of IoT, where, at the end, you will realize how devices on the IoT will have the ability to be far more reaching, with the only thing limiting the growth is our imagination.

16:30
7
Which Way is the ElePHPant Pointed?
Keynote by Cal Evans in Fairfax A (1 hour)

PHP has come a long way since it’s days as a handful of Perl scripts. These days it powers some of the most powerful applications on the web. Let’s take some time to look at where we are, and where things seem to be headed. We’ll discuss some new tricks the elePHPant has learned, and consider some we hope it will learn soon. Oh, and I’ll tell ElePHPant jokes. Here’s one to get you started. Q: Why did the elephant cross the road? A: Chicken's day off. Yeah...I’ve got a LOT more. :)

Friday 25th October 2019

09:00
0
IBM i Day
Workshop by Jesse Gorzinski, Clark Everetts, Erwin Earley in Shenandoah (8 hour)

Come join us at php[world] for a full day dedicated to exploring PHP on IBM i. Spend the day with your peers learning from the experts from IBM and Zend / Perforce. This post-con day is a single-track event hosted on Oct 25th. It requires a separate ticket, which can be purchased independently or alongside a conference ticket. https://world.phparch.com/register ### Talk topics include: * An overview of the capabilities of PHP on IBM i * Building web applications that use your IBM i data. * Leveraging existing business logic from your ILE programs and artifacts. * The three pillars of modernization: extending data consumption; augmenting existing applications with web interfaces, and enabling IBM i to host business-ready open-source solutions. * What you need to know about IBM’s increasing use of open source with the IBM i platform. * How you can use the features in Zend Server to rapidly build and manage applications on the IBM i platform. This will be a fun and informative day and includes coffee, tea, and lunch. Sign up now to join us! ### Speakers include: **Erwin Earley**, Senior Solutions Consultant, Zend by Perforce — Erwin offers more than 20 years of experience working in the IBM i community, as an IBM employee and now with Zend by Perforce. **Jesse Gorzinski**, Business Architect, Open Source on IBM i, IBM — Jesse works for the IBM i development lab as the Business Architect of open source technologies. **Clark Everetts**, Senior Professional Services Consultant, Zend by Perforce — Clark has been using PHP on a daily basis for 14 years and training people on how to use it with platforms, including IBM i, for 11 years.