SunshinePHP Conference - February 4th-6th, 2016

It's warm and sunny in Florida. Take a break from the cold to enjoy some sunshine, and talk about PHP!

REGISTER!

Below is a full listing of the 3-hour in-depth SunshinePHP tutorials to be presented on February 2nd the day prior to the official conference.

NOTE: In order to attend these 3-hour in-depth tutorials an additional ticket for the tutorial day must be purchased from the Registration page.


Build Security In

Chris Cornutt
Tutorial
 
Beg
 
Security


There's a classic mantra when it comes to security in applications: "build in security from the start". This is easy to say but much more difficult to put into practice, especially when first starting out. In this tutorial session let me guide you though some of the basic concepts and how to apply them in your code to ensure the security of your application is well architected and effective against your ultimate adversary: the hacker.

I'll start with some of the basic topics, like authorization/authentication and input validation, before moving on to good security principles like "defense in depth", fault-tolerant development and tools and techniques to ensure the security of your application. Come get your hands dirty and learn to secure your applications from the start!

Preparation Instructions


Create Your Own Local Development Environments With Vagrant

Joe Ferguson
Tutorial
 
Int
 
DevOps
 
Development


Every project, it's the same dang thing! You setup a special snowflake that is your development environment. What if each environment didn't have to be an artisanal wortutorial_tagk of art? What if you could build one, spin it up for each project and never have to worry about it again? Let's talk.

In this tutorial, we will see how Vagrant, VirtualBox, Ansible, and other tools will make setting up a new development environment easier than getting your next cup of coffee. In this session you will learn:
  • Vagrant Basics
  • Customizing Vagrant using shell scripts and Ansible Playbooks
  • Advanced Vagrant customization options
Join us and go from snowflakes to lego blocks for your next development environment.

Preparation Instructions


Docker for PHP Developers

Chris Tankersley
Tutorial
 
Beg
 
DevOps
 
Docker


Thanks to tools like vagrant, puppet/chef, and Platform as a Service 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 100% 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.

Preparation Instructions


From SQL to noSQL

Derick Rethans
Tutorial
 
Int
 
Database


In this tutorial I will explain the differences between different types of noSQL databases as well as the CAP theorem. I will then progress to illustrate which paradigm shifts are necessary to successfully implement noSQL, using MongoDB as an example.

The approaches to schema design, fault tolerance, the network breaking and latency are all things that are inherent to scalability with noSQL solutions and with this talk you will learn how to use MongoDB effectively considering all the above mentioned situations.

Covered subjects will be: CAP theorem, schema design, dealing with error situations and architecture of multi-node set-ups.

Preparation Instructions


Introduction to Event Sourcing and CQRS

Beau Simensen
Tutorial
 
Int
 
Development


Have you heard about event sourcing and wondered what it is all about? Have you looked into it and wondered what sort of sorcery is going on behind the scenes that makes this magical technology work? Are you convinced that you cannot possibly move your existing applications to be event sourced? Take a step back and learn how event sourcing can be applied to a simple database-backed object model with little to no fuss. From there, see how you can start adding read models and begin to see how event sourcing and CQRS (Command Query Responsibility Segregation) go hand in hand!

Preparation Instructions


Learn To Test Like A Grumpy Programmer

Chris Hartjes
Tutorial
 
Int
 
Testing


In the middle of Web 3.0 it's become obvious that a very large percentage of developers are aware that there are tools available that allow them to write automated tests for the code they write. But you don't write tests. Never have. You feel a little bad about it but you tell yourself that it looks really tough to get into and you have a hard deadline that doesn't have any time for you to learn to use these tools.

What if you could learn how to write tests from someone who has been using them for a long time and also knows how to explain it in a way that cuts down on the fear and anxiety while teaching you what you need to go to get started immediately? That's what Chris Hartjes, long-time PHP testing evangelist, wants to do for you.

In this workshop Chris starts you off from the point of never having written a unit test and guides you through what tests really are. Then he will show you PHPUnit works and what features are the ones you really need to know. Next you will walk through using Test Driven Development using some code katas and leave with a solid, practical foundation that you can take back to your regular job and actually use. Testing your code is hard and might require you to relearn some closely-held practices. Let a grumpy programmer fix that for you!

Please come with the following setup and ready:

PHP 7.0.x (whatever the stable version is)
PHPUnit (latest stable)
Mockery (latest stable)


PHP Extensions Tutorial

Elizabeth M Smith
Tutorial
 
Adv
 
Core


Ever had a need for some library in C in your PHP code? Or want to hook into the engine to do evil? Or maybe you just want to make some part of PHP better. And then you say “but I don't know enough C”. PHP extensions are actually quite easy to write, even for those with only the smallest amount of C knowledge, if you know the secret incantations, places to find help, and where to get your tribal knowledge.

Write your own extension in this step by step tutorial which assumes you know nothing of PHP internals, the very basics of C syntax and little more, and have the ability to type “./configure && make && make install && make test”

We'll also touch on recognizing and fixing non PHP7 compatible extensions.

Preparation Instructions


Untangle your async spaghetti code

Luis Atencio
Tutorial
 
Int
 
Async


Asynchronous programming has always been difficult for JavaScript developers, even today. As applications become richer and have more bells and whistles than ever before, our ability to react to a user's clicks, gestures, scrolling, key presses, as well as reacting to remote data mashed up from different places is becoming unwieldy. To top it all off, we’re still dealing with a JavaScript event system that hasn’t seen much update in a long time.

The Reactive Extensions for JavaScript (RxJS) tackles this problem head on. RxJS is a combination of the design patterns (like Observer and Iterator), and principles from functional programming to provide a state of the art computing model to write asynchronous code easier. In this tutorial, attendees will learn about the Observable data type, which can be used to abstract out the notion of latency and time from remote HTTP calls as well as eliminate the use of the dreaded callback approach to event handling. RxJS makes events first-class citizens of the language and extends it with: error handling, retry logic, cancelation and disposal, testability, composition, and much more. This technology has proven to be so successful, there’s a formal specification to include Observables natively in JavaScript ES7.

No Preparation Instructions Needed