PHP communities

An Analysis of the Quality of Libraries in the Packagist Universe

Clark Everetts Intermediate

How do you find a truly reliable, well-built, and tested package? Do you have concerns about the overall quality and security of third-party libraries and packages you rely upon as dependencies in your code? Does quality have anything to do with number of reported downloads? Come see the results of our analysis of the quality of components available through Packagist - some popular, some under-appreciated - using various PHP QA Tools. Then, see a code module "before-and-after" some refactoring to change the values of a few specific QA metrics, one at a time. Time to relate those abstract metrics to real code!

Building a Culture of Respect: How to Find, Hire, and Retain Developers

Cal Evans Intermediate

Them: We're Hiring! Me: Big deal, who isn't? There is a talent war going on in tech, everybody is hiring! These days’ developers have their pick of jobs, so why should they pick yours? If you say "because you pay more" then you've already lost. High salaries may get them in the door, but it won't keep them in the long run, and it won't capture their hearts and minds, only their wallets. You need a strategy that will engage your developers, something that will make them want to make your projects a success. You need to do more than hire developers and call them a team. You have to build a "Culture of Respect". This session is more than just a guide to help you find developers to hire. It’s more than just a guide on how to set up an effective method of interviewing developers. It teaches you the hard part, keeping them once you've hired them. It takes a lot of effort and money to find and hire developers these day, once you get them, you need to learn to hold on to them. "Culture of Respect" deals with why you want to invest the time and energy to build a team that developers want to be a part of. Once you understand why, you dive deep into how.

Building Robots with PHP

Christopher Pitt Beginner

Are you the kind of person who's too busy working to build robots with PHP? Well, you're missing out! Over the last few years, Christopher has built all sorts of useful robots (Internet of Things machines); to connect to virtual environments, automate the surroundings, or generally make life easier. All of these could be built using little more than the familiar PHP code used 9-to-5 jobs. Join this session to see some of the cool things you can do, with an Arduino, some useful PHP libraries, and a lot of imagination.

Chatbots are Fun! So Let's Build One!

Tessa Mero Beginner

Chatbots and conversational agents have become very popular in the recent years and there is a huge research effort to automate conversations in several applications. What are Chatbots? How can it benefit you? How do you write the code for it? These questions will be answered during the session with step by step directions so you can easily follow along. Come join us and build your first Chatbot in less than an hour!

Domain-Driven Data

Bradley Holt Advanced

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.

How to Go From Developer to Stakeholder

Ann Gaffigan Intermediate

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. Disclaimer: I cannot confirm or deny that I have a problem with authority and a thirst for power.

Implementing Languages

Christopher Pitt Beginner

Programming is hard. Making compilers is harder. Or so people think. The truth is that making a compiler is just a series of small steps, using regular language constructs. It's so easy, we'll make one in this session. Many developers (especially those who are self-taught) believe the lie; that making compilers is too hard for them. That they lack the tools and knowledge to bring their ideas about programming languages to life. There's a lot of complex thinking that goes into mainstream compilers, but that's no reason not to try! We can make less efficient compilers and interpreters which enable the same amount of power and flexibility as mainstream compilers. We could use tools like Parser Expression Grammars or JISON, but this session will look at something even simpler. Let's build our own cross compilers using regular expressions and a stack. Let's implement our own programming languages, in real-time.

Install MariaDB on IBM i - Tips, Troubleshooting, and More

Rod Flohr Intermediate

MariaDB is the new open source drop-in replacement for MySQL that has been adopted by IBM for use on Power Linux and IBM i. ZendDBi is the installer provided by Rogue Wave Software for installation of MariaDB on the IBM i. In this session we'll show how to use ZendDBi to install MariaDB and provide some important tips for post-installation. We'll also demonstrate troubleshooting some common installation issues. While most installations of MariaDB are trouble free, the troubleshooting procedures will give us a chance to understand a bit more about the operation of MariaDB on the IBM i. It'll also give us the opportunity to explore some concepts on IBM i that may not be familiar to some RPG programmers.

Lessons Learned Building the Composer Internals

Jordi Boggiano Beginner

This session will dive into Composer's guts to see which choices we made worked and which ones did not. After six years and a few hundred thousand users, the Composer code has been through many iterations, problems, and successes. Let's have a retrospective to see what we can learn from it.

Make Your IBM i Sizzle with WordPress

Alan Seiden Beginner

WordPress lets you create a website by choosing a theme and adding your own graphics without touching a line of code. This popular open source application also has thousands of plugins to add features to your site. Best of all, it runs on IBM i, and can leverage your own DB2 data and RPG programs. Learn why WordPress on the IBM i can be the most powerful WordPress anywhere. Since WordPress is based on PHP and MySQL, you'll get a taste of those technologies as well.
In this session you'll:

  • See what your IBM i can do with WordPress, how you can quickly create a website that will wow the business people in your company
  • Get a taste of how open source technology runs the web
  • See your IBM i data and RPG output on a WordPress site on IBM i

MySQL JSON Data Use Guide

Dave Stokes Intermediate

MySQL 5.7 provides a JSON data type. Previously you could store JSON formatted data in some sort of text field but then you would have to use REGEX which would reduce the quality of your work life, make your grumpy, and would be frustrated when you had to maintain it. Now you have over two dozen functions, can create materialized columns from JSON data that can be indexed for fast searchers, and can output data in JSON. This is a quick introduction for PHP developers to learn to incorporate this new data type with plenty of programming examples.

MySQL 8

Dave Stokes Beginner

MySQL 5.7 was the most popular version of the open source database. But several legacy problems needed to be solved, performance increased, and new features added. The biggest change is a true data dictionary which removes all those odd little files with meta-data (.frm, myi, myd, etc) and provides transactional ALTER TABLEs. Plus you see Invisible Indexes, roles, CTEs/Windowing functions, UTF8MB4 support, and learn what happened to MySQL 6 and MySQL 7.

Symfony 4 - Developer eXperience

Anderson Casimiro Intermediate

By the end of year we'll receive a brand new Symfony version on which we'll get an easier to use more flexible framework on our hands. Symfony team plans some deep changes on framework while it's still have a solid base. Say goodbye to old style bundled improvements and welcome auto-configuration. Symfony 4 will support only PHP 7 so there will be some deprecations from 3.4 version. The main purpose is to bring an improved developer experience to Symfony users as basis of the framework keeps strong as always. This presentation will cover all news from a developer sight.

Transforming WordPress Search and Query Performance with Elasticsearch

Taylor Lovett Beginner

WordPress traditionally uses MySQL. MySQL is a powerful relational database but falls short on complex multi-dimensional queries and search. At 10up, the largest WordPress-centric agency in the world, we use Elasticsearch and ElasticPress, our open source solution for integrating Elasticsearch with WordPress, to transform search and query performance on some of the biggest, most high-traffic WordPress installations in the world. This session will dive into optimizing Elasticsearch and WordPress for highly relevant search results and high performance.

Writing Tests for PHP Source

Sammy Kaye Powers Beginner

As you might have already heard from a grumpy individual, adding more tests to your codebase is crucial to its stability over time. This session isn't about adding tests to your PHP codebase, but adding tests to the PHP language itself. And the best part is, all the tests are written in PHP so you don't even have to dust off that old C book from college. In this session you'll see how to find untested parts of the PHP source code, how to write a test for the untested feature, and how to submit your tests to PHP internals. Not only will you be making PHP more stable and reliable, but there's a good chance the tests you write will give you a deeper understanding of PHP; knowledge you can use to improve your own codebases. Not to mention you'll be able to call yourself an internals contributor. Come on in! The water's fine!

You Got JavaScript in My PHP

Taylor Lovett Beginner

PHP is a powerful language. However, when building applications on the web, JavaScript can’t be ignored. Browsers run JavaScript client side. Many powerful frameworks and tools are built on Node.js. Additionally, isomorphic web applications have become increasingly popular. Good news: We can use JavaScript within PHP. Using the PHP extension V8Js and Google V8, we can execute Node.js code within PHP. This session will run through the why and how of V8Js and executing JavaScript in PHP.

Zend Studio Tips and Techniques

John Valance Beginner

If you're new to using Zend Studio, or if you haven't yet had training in using this tool, you may not be aware of many of its features, some of which can save you a lot of time and frustration. Zend Studio is the PHP editor provided free to IBM i customers with a full year of free support and upgrades. Using a live version of Zend Studio, we'll cover some basic concepts of the IDE and demonstrate some popular features and techniques. We'll discuss perspectives and contrast the Remote System Explorer with the PHP Perspective, and demonstrate some of the advantages of the PHP perspective for developing larger projects. We'll also cover editing shortcut keys, creating templates, using filters, and more.