6. @PhillSparks
• API Engineer at CrowdLab
• From Leicester, UK
• Climbing Instructor
7. @PhillSparks
• API Engineer at CrowdLab
• From Leicester, UK
• Climbing Instructor
• Scout
8. @PhillSparks
• API Engineer at CrowdLab
• From Leicester, UK
• Climbing Instructor
• Scout
• Laravel Core Team
9. Laravel
• With Laravel since 1.5.9
• Core Team Member
• Past: Quality Team
• Now: Community engagement and support
10. Laravel
• With Laravel since 1.5.9
• Core Team Member
• Past: Quality Team
• Now: Community engagement and support
• Dayle still owes me 9000 support points!
11. Software Design Patterns
“ ”
Each pattern describes a problem which occurs over
and over again in our environment, and then describes
the core of the solution to that problem, in such a
way that you can use this solution a million times
over, without ever doing it the same way twice.
-- Christopher Alexander, AIS+77
22. Interfaces
namespace IlluminateAuth;
interface UserInterface {
public function getAuthIdentifier();
public function getAuthPassword();
}
class GenericUser implements UserInterface {
23. Interface
• 244 interfaces in Laravel (including vendors)
• 25 from Laravel Core
• 65 from Symfony
• 73 from Swiftmailer
24. Abstract Classes
namespace IlluminateDatabaseEloquentRelations;
abstract class Relation {
abstract public function addConstraints();
abstract public function getResults();
}
class BelongsTo extends Relation {
25. Abstract Classes
• 128 abstract classes in Laravel (including
vendors)
• 14 from Laravel Core
• 15 from Swiftmailer
• 40 from Symfony
49. Service Provider
• Core to Laravel’s IoC
• See IlluminateSupportServiceProvider
• Examples:
• IlluminateAuthAuthServiceProvider
• IlluminateHashHashServiceProvider
• IlluminateLogLogServiceProvider