Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Framework agnostic packages for the win (ForumP...
Search
Jonathan Reinink
November 24, 2015
Technology
1.2k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Framework agnostic packages for the win (ForumPHP 2015)
Jonathan Reinink
November 24, 2015
More Decks by Jonathan Reinink
See All by Jonathan Reinink
The formula to awesome docs (phpDay 2017)
reinink
0
260
How to open source a PHP package (phpDay 2017)
reinink
1
240
The formula to awesome docs (Lone Star PHP 2016)
reinink
0
1.2k
The PHP Package Checklist (Lone Star PHP 2016)
reinink
0
400
Framework agnostic packages for the win (SkiPHP 2016)
reinink
1
470
Rethink image manipulations with Glide (ForumPHP 2015)
reinink
0
750
Rethink image manipulations with Glide
reinink
3
650
Enough about Classes, Let's Talk Templates
reinink
8
4k
Practical deployments for average projects
reinink
4
500
Other Decks in Technology
See All in Technology
AI時代、データエンジニアが一番おもろい
genshun9
0
600
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
8
920
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
1.9k
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
190
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
240
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
110
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
4
1.7k
20260912_スクラムにジェネラリストは必要か
ryugen04
0
420
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
160
人間はどの意思決定を手放せるのか
kawasima
14
6.8k
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
120
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
150
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
870
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Claude Code のすすめ
schroneko
67
230k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Large-scale JavaScript Application Architecture
addyosmani
515
110k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
650
Build your cross-platform service in a week with App Engine
jlugia
234
19k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Scaling GitHub
holman
464
140k
Transcript
None
Jonathan Reinink Software developer from Canada. Been writing PHP for
over 15 years. Marketing agency for over a decade. Started contract development this year. I <3 open source.
None
What exactly does framework agnostic mean?
Code that works independent of frameworks.
Framework agnostic does not mean framework intolerant.
Why framework agnostic?
Framework agnostic code is more reusable than framework specific code.
Reusable code is code we don't have to write.
I believe creating reusable code is key to the continued
success of PHP.
As software become increasingly more complex, our reliance on existing,
quality code increases.
I see a future where the various PHP communities more
actively share code with one another.
So, why then are we using framework specific code?
Because we sort of had to.
1994 - 2004: 2005 - 2012: 2013 - Future: Vanilla
PHP Frameworks Packages
1994 - 2004: The age of vanilla PHP
Rasmus started working on PHP sometime in 1994.
PHP was this new amazing tool that let us build
dynamic websites easily.
PHP became a career for many of us.
We started finding ways to write code better and faster.
PHP had a decent standard library, but pieces were missing.
Routing Templating Database Abstraction Validation Session Handling Error Management Authentication
Caching Request Processing Responses Sending
Developers starting writing new, focused PHP libraries.
But…we had no easy way to share them.
So we manually downloaded zip files.
Introducing PEAR: PHP first attempt at a package manager.
1. To provide a consistent means for library code authors
to share their code with other devs. 2. To give the PHP community an infrastructure for sharing code. 3. To define standards that help developers write portable and reusable code. 4. To provide tools for code maintenance and distribution.
PEAR had some issues...
The community gave up on PEAR. :(
2005 - 2012: The age of frameworks
Reusable code was packaged up into libraries called frameworks.
Frameworks were easy to download, and they just worked.
Frameworks came with almost everything needed for the average project.
Frameworks allowed us to get work done quickly.
2015 became the year of PHP frameworks. Symfony, CakePHP, Solar,
Agavi, ezComponents
But, what if the framework didn't have some other functionality
you needed?
Frameworks grew to accommodate a wide range of use cases.
We continued to download zip files. :(
Then everything changed.
2013 - Future: The age of packages
1994 - 2004: 2005 - 2012: 2009: 2012: 2013 -
Future: Vanilla PHP Frameworks PHP-FIG Formed Composer Launched Packages
None
“We're a group of established PHP projects whose goal is
to talk about commonalities between our projects and find ways we can work better together.” (PHP-FIG goal)
“To define standards that help developers write portable and reusable
code.” (PEARs goal)
Their very first recommendation was an autoloading standard called PSR-0.
The PHP-FIG continues to develop standards that make sharing reusable
code easier.
www.php-fig.org
None
Unlike PEAR, Composer got a LOT of things right.
Downloaded packages. Resolved their dependencies. Autoloaded classes.
Composer was exactly what PHP needed to solve it's code
sharing problem.
Composer was an overnight success, and became mainstream in 2013.
Packages starting popping up everywhere. It was amazing!
So, why are we still using frameworks?
In the age of packages, the purpose of frameworks is
changing.
Frameworks no longer have to be everything to everyone.
Frameworks are now the glue between reusable framework agnostic packages.
Need something your framework doesn’t offer? No worries, just: >
composer require the/package
Even frameworks are now being built using framework agnostic code.
Framework agnostic code also pulls communities together.
Framework agnostic code is good for package maintainers.
If you’re a maintainer of a framework specific package, please
consider making it framework agnostic.
This will require a change in thinking. We’ve been in
the age of frameworks a long time.
Offer framework specific support for your package using service providers.
None
phppackagechecklist.com
None
So, why framework agnostic?
BECAUSE IT CAN BE!!!
Thanks! Follow me on Twitter at @reinink. Rate this talk
https://joind.in/15278.