PHP-1701-A By: Adam Culp Twitter: @adamculp

PHP-1701-A About me ● – OSS Contributor – PHP Certified – Zend Certification Advisory Board – PHP-Fig voting member (IBM i Toolkit) – Consultant at Zend Technologies – Organizer SoFloPHP (South Florida) – Organizer SunshinePHP (Miami) – Long distance (ultra) runner – Photography Enthusiast – 2 Judo Black Belt Instructor

PHP-1701-A About me ● – OSS Contributor – PHP Certified – Zend Certification Advisory Board – PHP-Fig voting member (IBM i Toolkit) – Consultant at Zend Technologies – Organizer SoFloPHP (South Florida) – Organizer SunshinePHP (Miami) – Long distance (ultra) runner – – 3 I am the Photography Enthusiast PHP Ninja!!! Judo Black Belt Instructor

PHP-1701-A ● Fan of iteration – 4 Pretty much everything requires iteration to do well: ● Long distance running ● Judo ● Development ● Evading project managers ● Enterprise Software!

PHP-1701-A ● What is Enterprise Software? – 5 No, not the starship!

PHP-1701-A ● What is Enterprise Software? – 6 PHP vs Java vs Python vs Go?

PHP-1701-A ● What is Enterprise Software? – 7 Active Record versus Data Mapper?

PHP-1701-A ● What is Enterprise Software? – 8 Symfony vs Zend vs Laravel?

PHP-1701-A ● What is Enterprise Software? – 9 “…is computer software used to satisfy the needs of an organization rather than individual users.” - wikipedia

PHP-1701-A ● What is Enterprise Software? – 10 “…describes a collection of computer programs with common business applications, tools for modeling how the entire organization works, and development tools for building applications unique to the organization…” - also wikipedia

PHP-1701-A ● What is Enterprise Software? – 11 “Enterprise applications are about the display, manipulation, and storage of large amounts of often complex data and the support or automation of business processes with that data.” - Martin Fowler

PHP-1701-A ● 12 Really? – Organization vs User – Large Companies – Corporate Patterns – Data or Complex Data

PHP-1701-A ● 13 In Other Words: – No small companies – No individual users – No simple/small data

PHP-1701-A ● 14 Really? – Organizations versus users – Large companies – Patterns – Data or Complex Data

PHP-1701-A ● What is Enterprise Software? – 15 License

PHP-1701-A ● 16 License – OSS vs Proprietary (many for each) – No license == no sharing – License == Responsibility

PHP-1701-A ● 17 What is Enterprise Software? – License – Interoperability

PHP-1701-A ● Interoperability – 18 Composer ● 433+ million package downloads…in July 2018 ● 10.25 billion total since 2012 ● More than just left-pad – Play nice with others – Easily add functionality – Caring users/community – PHP-FIG ● (politics aside) ● Passions == arguing

PHP-1701-A ● 19 What is Enterprise Software? – License – Interoperability – Lock-in

PHP-1701-A ● 20 Lock-in – Less lock-in is preferred – What if I want Ginger Ale instead of Koolaid? – Can seem innocent ● “We’re trying to help our users.” ● “Oops, sorry, must continue using this to use that.”

PHP-1701-A ● 21 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors

PHP-1701-A ● 22 Contributors – More eyeballs – More brains – More ideas – More updated – More faster – Role of Git

PHP-1701-A ● 23 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors – Bus Factor

PHP-1701-A ● Bus Factor – 24 Will it die without {{so-and-so}}? ● Visionary ● Energy ● Glue

PHP-1701-A ● 25 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors – Bus Factor – Documentation

PHP-1701-A ● 26 Documentation – App is not complete without it – Entry level to advanced – Searchable – Complete – Books, Blogs, Podcasts – Videos

PHP-1701-A ● 27 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors – Bus Factor – Documentation – Support

PHP-1701-A ● Support – Throat to choke ● 28 Who’s to blame – Community – Corporate – More than one

PHP-1701-A ● 29 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors – Bus Factor – Documentation – Support – Compliance/Security

PHP-1701-A ● 30 Compliance/Security – SOC, OCI, SAS70, PCI, Sarbanes Oxley (SOX), Oh my! – Richardson Maturity Model (REST) – RFCs – CVE issues ● Friends of PHP: https://github.com/FriendsOfPHP/security-advisories ● https://cve.mitre.org/

PHP-1701-A ● 31 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors – Bus Factor – Documentation – Support – Compliance/Security – Longevity

PHP-1701-A ● 32 Longevity – Experience level – Older == stability … usually ;-) – Waiting for version n.01 – Version 8 being defined

PHP-1701-A ● 33 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors – Bus Factor – Documentation – Support – Compliance/Security – Longevity – Upgradeable

PHP-1701-A ● 34 Upgradeable – Wizards – Documentation – BC (backward compatible) – Composer

PHP-1701-A ● 35 What is Enterprise Software? – License – Interoperability – Lock-in – Contributors – Bus Factor – Documentation – Support – Compliance/Security – Longevity – Upgradeable – Roadmap

PHP-1701-A ● 36 Roadmap – Plans for next version – Vision or ideas – Stagnant – Openness

PHP-1701-A ● Other Considerations – 37 Performance

PHP-1701-A ● 38 Other Considerations – Performance – Code Quality

PHP-1701-A ● 39 Other Considerations – Performance – Code Quality – Coding Standards

PHP-1701-A ● 40 Other Considerations – Performance – Code Quality – Coding Standards – IDE Friendly

PHP-1701-A ● 41 Other Considerations – Performance – Code Quality – Coding Standards – IDE Friendly – Tested/Testable

PHP-1701-A ● Future – 42 Remote working

PHP-1701-A ● 43 Future – Remote working – Microservices

PHP-1701-A ● 44 Future – Remote working – Microservices – Containers

PHP-1701-A ● 45 Future – Remote working – Microservices – Containers – Async PHP (Swoole, ReactPHP, PHP v.8)

PHP-1701-A ● 46 Future – Remote working – Microservices – Containers – Async PHP (Swoole, ReactPHP, PHP v.8) – Middleware (SlimPHP, Expressive, etc.)

PHP-1701-A ● 47 Future – Remote working – Microservices – Containers – Async PHP (Swoole, ReactPHP, PHP v.8) – Middleware (SlimPHP, Expressive, etc.) – Serverless

PHP-1701-A ● 48 Future – Remote working – Microservices – Containers – Async PHP (Swoole, ReactPHP, PHP v.8) – Middleware (SlimPHP, Expressive, etc.) – Serverless – Function as a Service (FaaS)

PHP-1701-A ● 49 Summary… “Enterprise” is: – Stability – Dependability – Security – Business Continuity

● Thank you! – Code: https://github.com/adamculp/ Adam Culp http://www.geekyboy.com http://RunGeekRadio.com Twitter @adamculp Questions?