Symfony Live Portland 2013
Symfony Live Portland 2013
Before the official conference, SensioLabs organizes several workshops on Symfony/Silex/Twig topics. Learn more.
|Track A||Track B|
Have fun... coding with Fabien (episode 1)
|Track A||Track B|
Surviving a Prime Time TV Commercial
|17:0018:00||JEOPARDY - Jeremy Mikola|
Come, talk, and code about Symfony, Silex, and Twig.
Take the Symfony2 certification exam.
Have fun... coding with Fabien (episode 1) — English
I like to push the limits. In 1985, my first piece of code was about managing a portfolio of stocks. In 1990, I published a game written in 10 LOCs. In 2009, I tweeted an implementation of a service container in less than 140 chars. 2013... time for another challenge. What about packing a Symfony full-stack application in a single file? No phar, no compilation, everything in a single readable file: from assets to controllers, from templates to Composer configuration. This is an interesting challenge but it would come in handy in many situations like when you are reporting a bug that involves many layers and third-party code. So, is it possible to pack a Symfony full-stack application in one file? ... in less than 200 lines of code? Well, I'm not sure yet but attend my keynote at SymfonyLive Portland to see if I took up the challenge and learn a few tricks along the way about PHP and Symfony. The only thing I'm already sure about: your head is going to explode!
Quality... french style — English
Quality... french style
Laravel 4 & Symfony — English
Laravel has become a popular framework for developers looking to rapidly prototype and build a variety of web applications. With the introduction of Laravel version 4, the framework is driven by a variety of Symfony components which provide a stable, well-tested foundation of functionality. In this session, we'll discover how several key Symfony components are integrated into the Laravel framework, and how they can be used to build the foundation for great libraries, and even an entire framework! By utilizing these components, developers are free to focus on the unique aspects of their libraries, no longer consumed by maintaining hordes of boilerplate code.
Taking caching to the next level — English
There are many things to consider when adding caching to a web application. This talk will cover caching in different layers of a web application. It will cover caching with Varnish (using ESI), caching in the view layer and client side caching. Furthermore strategies for keeping the caches up to date (purging, generational caching) will be discussed. Finally the talk will show various techniques for making "uncacheable" pages cacheable to be able to leverage the advantages of your cache even more even when dealing with things like personalized views and edit buttons ;).
Real-time Data Aggregation with MongoDB — English
Real-time analytics dashboards, nightly reports and ad hoc querying are just some of the ways we make sense of data. Each entails its own set of design constraints, benefits and trade-offs. Originally, map/reduce or data warehousing (i.e. exporting to an RDBMS) was the only option for data aggregation in MongoDB; however, version 2.2 introduced a new aggregation framework. Modeled after UNIX pipes, this framework combines the simplicity of SQL aggregation operators (e.g. min, group by) with the power of map/reduce and performance we've come to expect from MongoDB. In the latter half of this talk, we will look at a few PHP applications demonstrating the aggregation framework in action.
Process any amounts of data. Any time — English
Processing one billion database rows doesn't need to kill your web server. Really, it doesn't. Applying lazy evaluation ideas you can make your scripts handle as much data as there exists, never using more memory than one unit's size (for example a database row). Using clever iterators, cursors and streams I'll show you how you can reduce memory usage drastically, thus making your scripts more reliable and your sysadmins happy.
Love and Loss: A Symfony Security Play — English
The security component tackles the complex problems of authentication and authorization by spreading concerns across a number of single responsibility objects. This is a flexible design, but difficult for beginners to navigate. This presentation will bring the security component to life for us all to understand! Join us to see some of your favorite members of the Symfony community perform the security component in a series of scenes, interspliced with some technical descriptions of what's going on.
The HttpKernelInterface is a lie — English
You thought that you need to rewrite your whole application to use HttpFoundation in order to benefit from HttpKernelInterface functional testing? This talk will explore the evolution of HTTP abstractions. We will take a look at inetd at the TCP level, CGI and FCGI at the HTTP level, language level abstractions like Rack for Ruby and WSGI for Python. Finally we will arrive at the Symfony2 HttpKernelInterface. The PHP community can take many ideas from Rack. We should be building composable stacks of re-usable middlewares. Which opportunities are lurking in the HttpKernelInterface? Is it really a lie?
Embedding Composer — English
Composer is a wonderful way to manage a project. But what happens when you need your application to be extensible at runtime? Enter Embedded Composer. Embedding Composer will ensure that the dependencies already included by your application are taken into account when adding additional dependencies at runtime. While this can be very useful for any application that may be installed globally it is critical for any application that may be distributed as a phar.
10 Lessons from a traveling Symfony2 Circus — English
I've seen a lot of Symfony2 projects, including some really innovative ideas, but also some horrible, but unfortunately common mistakes. Journey with me in this talk as we explore lessons from all of this: mistakes to avoid, useful secrets to leverage, and other delightful anecdotes from a three-year romance with Symfony2.
Surviving a Prime Time TV Commercial — English
Setting up an online shop is a relatively trivial task these days. Pick your application, adjust some templates, sign payment provider contracts, make sure your supply chain is in order, and launch. But once you decide to aim higher and start airing commercials, on TV, during prime time hours, then regular off-the-shelf software will not cope with the flood of incoming requests. That's when it is time to build something a little more durable, without a single point of failure, serving pages in under a hundred milliseconds, unfazed by extreme concurrency, and powered by Symfony. This is a talk about lessons learned and missions accomplished.
Cryptography For The Average Developer — English
Every developer at one point or another needs to implement some form of cryptography in one of their applications. Whether it's hashing passwords or encrypting sensitive user data, the security requirements are daunting. Yet you don't need to be an expert in cryptography to implement it correctly. All you need to do is understand the basics, and trust the experts. In this talk, we'll take a look at some of the basic concepts of cryptography and how to implement them in PHP. Additionally, we'll discuss the common problems that developers face and how best to solve them. Finally, we'll dispel some of the myth and rumors around password hashing and how (and more importantly why) to do it properly.
Building Next-Generation Web APIs — English
Symfony2 has been built with HTTP at its core and so it’s not surprising that many developers use it to build Web APIs. Unfortunately, though, most of them miss key aspects of REST such as hypermedia. When building traditional Web sites, developers intuitively leverage links to guide visitors through their sites. They understand that no one is interested in reading documentation just to understand how the URLs necessary to reach a desired page can be assembled. It is therefore surprising that most APIs require just that. They are similar, yet different; require specialized client libraries resulting in a code base that is large, yet inflexible. Such systems are not only expensive to maintain, but also difficult to scale. In this talk, I will show how Symfony can be used to build next-generation Web APIs based on JSON LD. The resulting APIs not only leverage hypermedia to the fullest extent, but are also uniform enough to be accessible by a generic API console.
Silex: An implementation detail — English
Your framework is holding you hostage, and you are suffering from Stockholm syndrome. Are you a PHP developer, a Symfony developer or a Drupal developer? You should be a web developer. Frameworks are just details, your business does not care about them. Silex is a library with a narrow and well defined scope, that allows you to adapt it to work on top of your existing application and business logic, not within it. Most “full stack” frameworks make a lot of decisions for you, and changing them is usually quite hard. You should be telling your framework what to do, not the other way round. We will show you some approaches to designing your application in a framework-agnostic way, followed by how you can ease the delivery of your application over the web with Silex and some custom event listeners and middlewares.
Functional Testing with Symfony2 — English
Functional tests are one of several corner-stones of quality assurance in any project. This session introduces functional testing and explains its usage in the context of Symfony2. We will take a look at the Browser, Crawler and CssSelector components that are specifically made for functional testing and finish with common use-cases and best-practices.
Getting Good with the AWS SDK for PHP — English
Amazon Web Services and the AWS SDK for PHP continue to put more power into the hands of PHP developers to build robust and scalable applications. With version 2 of the SDK, PHP developers now have a more powerful, flexible, and modern library built on top of existing open source software like the Guzzle HTTP framework and the Symfony 2 Event Dispatcher. In this session you will learn how to use the new AWS SDK for PHP, and examine code samples showing how to work with Amazon S3 and Amazon DynamoDB. You will also see how you can quickly deploy your application to AWS Elastic Beanstalk.
Creating Mobile Applications with Symfony2 — English
In this talk we will look at some of the reasons on why mobile applications are important, including some history on the mobile market. Then we will look at some frameworks that help develop high-quality mobile apps and we will showcase a mobile app developed with PHP and Symfony2, including the source code which will be available on Github.
Moving a high traffic ZF1 Enterprise Application to SF2 - Lessons learned — English
Hautelook is a large ecommerce application that is currently running a Zend Framework 1 backend. The next iteration of its API (used by desktop, mobile, as well as iPhone and Android native applications) is done with Symfony 2. This API is following the principles for hypermedia APIs. To that end, Hal+Json is the media-type we chose, and we implemented most of it using the FSC HateoasBundle. Another critical piece of Hal+Json APIs is documentation. To this end we have used NelmioApiDocBundle to automatically generate documentation for the API endpoints. The other critical piece of any application is performance for which we use XHProf with XHGui. In my talk I want to touch on all those aspects, show some of the lessons learned, how we solved some of the problems, and what is still unsolved.
Modernizing Drupal with Symfony2 — English
Symfony is not just a full stack framework, it's a collection of powerful decoupled web app components. Those components can be used on their own or even leveraged to modernize an existing codebase. That path is not always simple, however. Drupal 8, due out late in 2013, is being radically rearchitected around the Symfony Components. That has far-reaching implications for the rest of the system, including transitioning from an almost entirely procedural system to a mostly OO system. This talk will be a hands-on "lessons learned" in injecting the Symfony components and architecture into an existing system. We'll cover Drupal's existing architecture, how we reached the decision to leverage Symfony, how we're going about leveraging Symfony without leveraging anti-acids, and where we're likely to end up when the dust settles.
Building web service clients with Guzzle — English
Guzzle takes the pain out of sending HTTP requests and the redundancy out of creating web service clients. In this session, we'll build a web service client from the ground up. We'll start by building a simple client that sends and receives raw HTTP messages, and work our way toward a service description powered client that utilizes various Symfony2 EventDispatcher powered events subscribers.
Modernisation of legacy PHP applications using Symfony2 — English
PHP and its community has evolved really fast in the last few years to allow for professional architectures and solutions. However, there are thousands of existing PHP applications which have not evolved in the meantime and are now crippled and unmaintainable because of that. These applications represent a real threat to the competitiveness of the business that relies on them. The best approach in terms of business to solve this problem is progressive rewrite. Symfony2 and its modular architecture make it possible. This talk will cover the main technical difficulties of the progressive approach when rewriting legacy PHP applications using Symfony2
Reverse caching proxies: Varnish or Nginx? — English
In a world full of scalability challenges, a reverse caching proxy has become an essential tool to protect your backend servers. This talk is dedicated to that and compares Varnish to Nginx as the 2 tools for the job. We'll be talking about setting the up, playing around with config, making them serve cached PHP content and do some advanced tricks such as ESI