Laracon DB
Laracon DB
Laracon EU 2019 in Amsterdam, NL

Laravel 6.0 features were presented, marking the framework's move to semantic versioning. Laravel Vapor was introduced to European developers. Discussions centered around the adoption of semantic versioning and its impact on package development.

The world is NOT cruddy by design

This talk discusses moving beyond basic CRUD operations in Laravel applications, focusing on better ways to structure code using domain-driven design principles. The speaker emphasizes using ubiquitous language that matches business requirements rather than database structures, separating read and write operations, and implementing more meaningful actions instead of simple CRUD operations. He shares examples from large-scale projects and demonstrates how to improve code organization using commands and events.

How your Laravel application can get hacked...

A security-focused talk by a CTO from Helsinki discussing practical hacking techniques and defensive strategies in Laravel applications. The speaker demonstrates SQL injection attacks using SQLmap, object injection vulnerabilities through PHP stream wrappers and serialization, and privilege escalation risks when running Laravel scheduler as root. The talk emphasizes the importance of proper validation, keeping software updated, and understanding security as an ongoing process rather than a one-time task.

Event Storming for Everyone

A comprehensive talk on Event Storming, a collaborative workshop format that helps teams better understand business processes and domain knowledge. The speaker shares his journey from focusing on technical DDD patterns to discovering the importance of ubiquitous language and bounded contexts, demonstrating how Event Storming can improve communication between developers and domain experts through practical examples of modeling various business processes.

The Art of Form Validation

This talk focuses on form validation best practices in Laravel and frontend frameworks, covering both client-side and server-side validation approaches. The speaker discusses various validation techniques including HTML5 validation, JavaScript libraries like V-validate, and Laravel's built-in validation features, while emphasizing the importance of creating user-friendly validation experiences across desktop and mobile devices.

Close the Gate! Using Laravel's Authorization Layer

Chris Brown, a Laravel package maintainer and developer, gives a comprehensive talk about Laravel's authorization system, covering the differences between authentication and authorization, how to implement authorization using Laravel's Gate and Policy features, and best practices for handling permissions in Laravel applications. He discusses both built-in Laravel authorization capabilities and popular third-party packages.

The Beauty of Laravel's Notification System

A comprehensive talk about Laravel's notification system delivered at Laracon, demonstrating how to implement different types of notifications including email, database, Slack, and real-time notifications using WebSockets. The speaker shows practical examples using Laravel Nova and demonstrates live notification broadcasting, concluding with implementing a Twitter notification integration.

Event Sourcing in Laravel with EventSauce

This talk focuses on implementing event sourcing in Laravel applications using the Event Sauce library. The speaker provides a pragmatic approach to event sourcing, demonstrating how to handle pull requests as an example domain. The talk covers the basics of event sourcing, including aggregates, projections, and process managers, while emphasizing practical code examples over theoretical concepts.

Demystifying Dependency Injection Containers

A deep dive into dependency injection containers in Laravel and PHP, explaining how they work under the hood. The speaker demystifies 'magic' concepts like auto-wiring by building a simple DI container from scratch and explaining the recursive nature of dependency resolution. The talk focuses on making complex concepts more approachable by showing how containers use reflection to automatically resolve dependencies.

Performance optimization: how do I go about it?

This talk focuses on performance optimization in PHP applications, covering why it matters, how to measure it, and various tools and techniques for identifying and fixing performance issues. The speaker shares practical examples using tools like Xdebug, XHProf, and flame graphs while emphasizing the importance of measuring before optimizing and maintaining a balance between performance and code readability.

Time Driven Development

The talk discusses time-driven development and software architecture decisions, using real-world examples from building a user profile management system. The speaker emphasizes the importance of balancing proper software design principles with practical time constraints. They demonstrate how over-engineering can sometimes waste time, while strategic architecture decisions can save time in the long run. The talk includes examples of transitioning from a CRM-based system to a local database, and lessons learned from over-engineering a GitHub integration.

Infinite Scale: Deploying and Scaling Laravel on Kubernetes

The speaker demonstrates how to deploy and scale Laravel applications using Kubernetes, showing how it can help handle production deployments more smoothly and provide automatic scaling. Through a live demo, they show how to set up a basic Laravel deployment with nginx, FPM, and auto-scaling capabilities in just a few minutes using Kubernetes configuration files, emphasizing that no application code changes are needed.

Our Secret Project

The speakers present two new error handling tools for Laravel: Ignition and Flare. Ignition is a modern error page that will be the default in Laravel 6, offering improved error reporting with features like dark mode, blade template debugging, and runnable solutions. Flare is a new Laravel-specific error tracking service that integrates with Ignition, offering team collaboration features, notifications, and error sharing capabilities.

Estimation as Uncertainty Reduction

This talk discusses software estimation techniques, focusing on how to leverage uncertainty rather than avoid it. The speaker explains how to use range estimates instead of single values, different measurement scales (nominal, ordinal, rational, interval), and various techniques for improving estimation accuracy. He emphasizes that estimation is an iterative process of reducing uncertainty through observations and measurements.

SOLID in Architecture

This talk discusses software architecture principles, focusing on SOLID principles at the component level. The speaker explains how to design and organize components, manage dependencies between them, and ensure good architectural practices. Key concepts covered include component cohesion rules (REP, CCP, CRP), component coupling principles (ADP, SDP, SAP), and how to measure and maintain stability and abstractness in software architecture.

Have your cake and eat it too with Inertia.js

Sebastian de Dana presents Inertia.js, a JavaScript framework for building server-driven single page applications that bridges traditional server-side Laravel applications with modern JavaScript frontend frameworks like Vue and React. The talk demonstrates how Inertia.js eliminates the need for API endpoints while maintaining the benefits of both server-side rendering and client-side interactivity.

Be nice, help the person who hacks your servers...

A talk focused on secrets management and security in web applications, particularly emphasizing the business impact of poor security practices. The speaker discusses the risks of storing credentials in clear text, the costs of data breaches, and presents HashiCorp Vault and AWS Secrets Manager as solutions for secure secrets management.

The State of Laravel

Taylor Otwell presents upcoming features and changes in Laravel 4.3, including a new folder structure, form request validation, contract interfaces, file system abstraction with Flysystem, and route caching for performance improvements. He emphasizes backward compatibility and explains how existing 4.2 applications can be upgraded smoothly.