Adam Wathan presents a detailed walkthrough of test-driven development (TDD) in Laravel, demonstrating how to build features from scratch using both acceptance tests and unit tests. He builds a Twitter clone called 'Tweeter' and shows how to implement features like viewing user profiles and sending follower notification emails, while explaining best practices around using mocks, spies, and fakes in testing.
Fabien Potencier discusses PHP performance optimization, focusing on using profilers (particularly Blackfire) to identify and fix performance bottlenecks. He explains that while PHP frameworks like Laravel and Symfony are often considered slow, the real performance issues usually stem from application code rather than the framework itself. The talk covers how to use profiling tools to measure performance metrics, set performance expectations through assertions, and integrate performance testing into development workflows.
Matthew Machuca gives a detailed talk about testing methodologies, focusing on behavior-driven development and test storytelling. He shares his experience working at Think Through Math, where he discovered and fixed bugs in their student-teacher pairing algorithm through better test practices. The talk emphasizes the importance of writing clear, expressive tests that tell a story and avoid coincidental passing tests.
Sandi Metz delivers a talk on code smells and refactoring, focusing on practical techniques to improve code quality. She explains how to identify code smells, apply appropriate refactorings, and use dependency injection to make code more testable. The talk emphasizes the importance of making incremental improvements and understanding classic Object-Oriented programming principles.
A detailed talk about practical design patterns and code organization in Laravel applications, focusing on when and how to implement different patterns. The speaker emphasizes writing maintainable code by making strategic decisions about pattern usage based on actual needs rather than prematurely implementing complex architectures. He covers both preventative and reactive patterns, from code organization to scaling solutions.
A live coding demonstration of frontend testing in Vue.js using Jest and Vue Test Utils. The speaker builds a simple voting application for the 'GIF vs JIF' pronunciation debate, showing how to write tests for component rendering, form validation, API interactions, and asynchronous operations. The talk includes practical examples of mounting components, handling props, mocking API calls, and managing Vue's reactivity system in tests.
TJ Miller presents a comprehensive talk on building and maintaining Laravel APIs, covering best practices from planning through implementation. He emphasizes the importance of documentation, resource responses, schema validation, and maintaining API contracts while sharing practical workflows and implementation patterns developed over years of experience building critical payment processing APIs.
The talk focuses on simplifying Laravel frontend development by reducing JavaScript complexity and leveraging more backend functionality. The speaker describes his journey from basic blade templates to Vue.js components, and then demonstrates how to improve frontend architecture by moving logic back to PHP, using props effectively, embracing form submissions, and not being afraid of page reloads when appropriate.
Bob Martin gives a talk about clean architecture, discussing how frameworks like Rails (and by extension Laravel) should not dominate application design. He emphasizes that web frameworks are just I/O devices and should be treated as plugins to the core business logic. He discusses the importance of proper architecture that allows deferring major decisions, separates business logic from delivery mechanisms, and enables easy testing. He also touches on the growing responsibility of software developers in society and the need for self-regulation through practices like TDD.
The speaker discusses how to write more declarative code in Laravel by refactoring common patterns found in controller actions. Using examples shared on Twitter as inspiration, he demonstrates how to transform verbose, imperative code into cleaner, more declarative alternatives using Laravel's built-in features like form requests, policies, mutators, and real-time facades. The talk focuses on practical refactoring techniques to reduce branching logic and improve code readability.
A live coding demonstration of Laravel package development where the speaker builds a gamification badge system package from scratch. The talk covers setting up package boilerplate, implementing badge functionality with tests, creating migrations, setting up facades, and explaining best practices for package development.
The talk introduces Livewire, a new Laravel package that allows developers to build dynamic interfaces using PHP and minimal JavaScript. The speaker demonstrates how Livewire combines the simplicity of blade templates with reactive features typically associated with frontend frameworks like Vue.js. Through live coding examples building a Twitter-like 'Woof' application, he shows how Livewire handles real-time validation, data binding, and component communication while maintaining Laravel's testing simplicity.
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.
This talk explores testing in Laravel with a focus on facades and test doubles. The speaker explains Martin Fowler's test double definitions (dummies, fakes, stubs, spies, and mocks) and demonstrates how to effectively use Laravel's built-in fakes for testing mail, events, jobs, and HTTP requests. The presentation emphasizes practical approaches to testing, showing how to avoid common pitfalls and achieve genuine confidence in tests rather than false confidence from incomplete assertions.
Nuno Maduro presents upcoming features in Pest PHP 2.9, a popular PHP testing framework. He demonstrates new capabilities including snapshot testing for comparing full responses, describe blocks for better test organization, architectural testing improvements, type coverage analysis, and a new drift plugin that automatically migrates PHP Unit tests to Pest PHP. The talk focuses on how these features make testing simpler and more elegant while maintaining full compatibility with existing PHP Unit tests.
Nuno Maduro presents the upcoming features in Pest PHP v3, the popular PHP testing framework. He introduces three major new features: task management for organizing test todos and GitHub issues within tests, architectural presets for ensuring code consistency, and mutation testing for measuring test quality beyond code coverage. The talk includes live demonstrations of each feature and concludes with the announcement that Pest v3 will have zero breaking changes and that his project Pinkery is being open-sourced.
Luke Downing gives an insightful talk about learning lessons from Laravel's design and philosophy. He discusses how seemingly simple features like three-line comments and facades reveal deeper truths about software development. The talk emphasizes how Laravel teaches developers to balance rules and conventions with practical developer experience, using examples from routing, testing, and real-time applications.
Matt Machuga gives a comprehensive talk about object-oriented programming in PHP/Laravel, focusing on proper object design, testing practices, and code responsibilities. He covers the history of OOP in PHP, explains key concepts like inheritance, traits, and polymorphism, and provides practical guidance on writing testable code while emphasizing the importance of proper object composition and responsible design patterns.
The talk focuses on Test-Driven Development (TDD) and behavioral design patterns, particularly emphasizing the importance of object communication and mocking in software design. The speaker discusses how exposing object communications through tests can help identify design problems and SOLID principle violations. He argues that mocks should be used as design tools rather than just for test isolation, and presents several case studies showing how proper mocking practices can lead to better software design.
The talk discusses software development costs from three perspectives: cost of introduction (writing new code), cost of change (modifying existing code), and cost of ownership (maintaining code). The speaker emphasizes the importance of understanding these costs when deciding whether to write custom code or use existing packages/tools, and advocates for only taking ownership of code that truly needs to be owned and changed frequently.
The talk discusses how Test-Driven Development (TDD) has evolved into Specification by Example and Behavior-Driven Development (BDD). The speaker demonstrates this evolution by building a Wikipedia search feature using PHP Spec, showing how to write specifications before implementation, use mock objects, and integrate the solution with Laravel. The presentation emphasizes the importance of changing terminology from 'tests' to 'specifications' to better communicate intent and improve developer understanding.
Claire Smith from Pop Point presents a comprehensive talk on database migrations and seeding in Laravel applications. She discusses best practices for managing database schemas, implementing different seeding strategies, and sharing database migrations/seeds between multiple Laravel applications using Composer packages.
A comprehensive talk on testing best practices in Laravel, covering 12 tips for effective testing. The speaker discusses various testing tools and techniques, from IDE configurations to test organization and quality checks. Key focus areas include TDD, automated testing workflows, and ways to make tests more readable and maintainable.
The speaker discusses moving from traditional API testing in Laravel to using API Blueprint specifications. He demonstrates how API Blueprint provides a language-agnostic way to define API structures using markdown, which can be tested using Dredd. The talk covers practical examples of implementing API specifications, using hooks for authentication, and organizing large APIs by splitting specifications into multiple files using Hercule.
A detailed presentation about creating APIs with Lumen, Laravel's micro-framework. The speaker explains how Lumen differs from Laravel, demonstrates building a RESTful API, and covers key concepts like routing, controllers, authentication, and testing. The talk uses a Pokemon-themed example API to illustrate core concepts while highlighting Lumen's strengths for API development.
Taylor Donnici shares his experiences building enterprise applications with Laravel at Process Maker, discussing the evolution from legacy systems to modern Laravel architecture. He covers key aspects of enterprise development including security, testing, CI/CD pipelines, and asynchronous job processing. The talk includes a live demo of Process Maker's new Laravel-based workflow management system and highlights their open source contributions to the Laravel ecosystem.
Taylor Donnici shares his experiences building enterprise applications with Laravel at Process Maker, discussing the evolution from legacy systems to modern Laravel architecture. He covers key aspects of enterprise development including security, testing, CI/CD pipelines, and asynchronous job processing. The talk includes a live demo of Process Maker's new Laravel-based workflow management system and highlights their open source contributions to the Laravel ecosystem.
Nuno presents Pest, an elegant PHP testing framework built on top of PHPUnit. The talk demonstrates how Pest simplifies testing syntax, reduces boilerplate code, and provides a more user-friendly experience through features like higher-order tests, datasets, and improved test coverage reporting. The framework maintains compatibility with existing PHPUnit tests while offering a more modern and concise testing API.
The speaker demonstrates how to refactor a complex Laravel/Livewire component handling mortgage calculations into smaller, more maintainable pieces using SOLID principles and good design practices. Through several refactoring steps, he shows how to extract business logic into services, use DTOs, implement interfaces, and write proper unit tests while maintaining functionality.
Luke Downing presents a comprehensive overview of Pest PHP testing framework, demonstrating its key features like higher order tests, data sets, and expectations API. He showcases these features by building tests for a demo Laravel application called ParrotCon, explaining how Pest simplifies testing while maintaining elegance and expressiveness compared to PHPUnit.
Nuno presents Pest, an elegant PHP testing framework built on top of PHPUnit. The talk demonstrates how Pest simplifies testing syntax, reduces boilerplate code, and provides a more user-friendly experience through features like higher-order tests, datasets, and improved test coverage reporting. The framework maintains compatibility with existing PHPUnit tests while offering a more modern and concise testing API.
Nuno presents Pest, an elegant PHP testing framework built on top of PHPUnit. The talk demonstrates how Pest simplifies testing syntax, reduces boilerplate code, and provides a more user-friendly experience through features like higher-order tests, datasets, and improved test coverage reporting. The framework maintains compatibility with existing PHPUnit tests while offering a more modern and concise testing API.
Christof Rülle shares his journey of managing and optimizing a large Laravel test suite with over 5,000 tests that initially took 50 minutes to run. He discusses the challenges faced and solutions implemented, including parallel testing, optimizing setup methods, and dealing with caching issues, ultimately reducing the test runtime to 5 minutes.
Bobby Balman from Hospitable discusses strategies for maintaining and surviving large Laravel applications. He shares experiences from managing a large-scale Laravel application processing 51 million jobs daily, emphasizing the importance of consistent code structure, proper testing, and following Laravel defaults. The talk focuses on practical approaches to organizing code in domains/modules while keeping things simple and maintainable.
David Hemphill gives a talk about creative ways to use and reuse Laravel's built-in components for solving common development problems. He shares approaches for handling front-end filtering, database testing, data access patterns, and model scheduling by leveraging existing Laravel features like pipelines, database seeders, form requests, and the scheduler rather than reaching for third-party packages.
The speaker presents a practical approach to implementing microservices architecture while avoiding common pitfalls by initially deploying as a monolith. He shares experiences from his time as CTO at Glo, describing how they structured their codebase into independent packages following domain-driven design principles, while maintaining the ability to later transition to true microservices. The talk focuses on achieving the benefits of microservices architecture (like loose coupling and clear boundaries) without immediately taking on all the operational complexity.
The talk discusses strategies for migrating legacy CodeIgniter applications to Laravel. The speaker shares his approach of gradually refactoring code while maintaining functionality, using Laravel Torch for eloquent models, implementing API endpoints, and leveraging Laravel Dusk for testing during migration. He emphasizes the importance of managing stakeholder expectations and using proper data modeling during the transition.
A comprehensive talk about testing JavaScript and frontend applications, focusing on making testing more manageable and enjoyable. The speaker covers various testing tools and approaches, from static analysis to end-to-end testing, with practical examples of how to implement them effectively.
Jason McCreary presents 10 tips for creating maintainable Laravel applications based on his experience with Shift and 20 years of programming. He covers topics ranging from staying current with Laravel versions to proper testing practices, emphasizing code readability and framework conventions. The talk focuses on practical approaches to improve application maintainability through proper structure, dependency management, and adherence to Laravel's design patterns.
Marcus Moore presents a talk about behavior-driven development (BDD) in Laravel, explaining how BDD helps bridge communication gaps between stakeholders and developers. He shares his journey from working at a small school to an agency, where he discovered the need for better requirement gathering and testing processes. The talk covers the three stages of BDD - discovery, formulation, and automation - with practical examples using Behat and Laravel integration.
The talk demonstrates how to create and publish Laravel packages, walking through the creation of a badge/gamification package as an example. The speaker shows how to set up package boilerplate, create migrations, implement models and traits, set up testing with Orchestra TestBench, and create facades. The presentation emphasizes that package development isn't complicated and provides practical guidance on structuring and testing Laravel packages.
Nuno Maduro presents Pest PHP, a modern testing framework for PHP. He demonstrates its elegant syntax, improved test output, and expectation API compared to PHPUnit. He then introduces a new stress testing plugin called Stressless that helps developers test application performance under load. The talk includes live demos of both Pest's core features and the new stress testing capabilities.
A comprehensive talk about web accessibility testing and how to build better habits around it. The speaker discusses various tools and techniques for testing accessibility, including screen readers, keyboard navigation, and color contrast tools. The talk emphasizes making accessibility testing more approachable by breaking it down into manageable checklists and establishing regular testing habits.
Sam, a CTO at Custom D, discusses the evolution of deployment practices and how to achieve high DevOps maturity. He explains how organizations can move from monthly deployments with high failure rates to continuous deployment with minimal risk through incremental improvements, automation, and feature flags. The talk covers practical strategies for implementing modern deployment practices, including handling legacy code bases and getting organizational buy-in.