Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

ThePHP.cc:
The Future of Zend
Oct 29, 2018 @ 10:17:44

In a recent post on their own site, thePHP.cc has shared some of their own perspectives about the recent future of Zend announcement. For those that aren't aware, the company that acquired Zend several years ago - Rogue Wave - announced their decision to discontinue their support of the Zend Framework project.

Last week, Zeev Suraski, Matthew Weier O'Phinney, Enrico Zimuel and Dmitry Stogov, all well-known members of the international PHP community, announced that they will leave Zend, which has been part of Rogue Wave since 2015.

The stated reason is Rogue Wave's strategic decision to focus on the development of Zend Server. If you read between the lines, this implies that Rogue Wave is not going to continue or support the development of the Zend Engine (the core of PHP responsible for compiling and executing code), their IDE Zend Studio, and Zend Framework.

Of course, it is perfectly valid to make money off an Open Source project. This, however, implies at least a moral obligation to give back to said project. Rogue Wave, it seems, will now terminate the symbiotic relationship between PHP and Zend.

The author (Stefan Priebsch) talks about "lip service" not being enough when a company wants to make money from customers but aren't willing to help with the development of the underlying software. He also mentions several other Zend-related products that have a bit more quietly gotten the axe over the years since the acquisition. He wonders about the "downsizing" this could cause in the PHP community given ZF's impact and how, despite this being a large setback for the project, he sees its future as promising given the people involved and the projects around it.

tagged: future zend opinion zendframework project roguewave community

Link: https://thephp.cc/news/2018/10/the-future-of-zend

Matthew Weier O'Phinney:
The Future of Zend Framework
Oct 22, 2018 @ 09:42:07

Matthew Weier O'Phinney, (former) lead developer on the Zend Framework and Expressive projects, has a new post to his site looking at the future of the Zend Framework and how priorities have shifted.

For the past thirteen years, I've been either consuming Zend Framework or directly contributing to it. Since 2009, I've operated as project lead, and, since then, shepherded the version 2 and 3 releases, added Apigility to the ZF ecosystem, and helped bring middleware paradigms to the mainstream by assisting with the creation of Stratigility and coordination of the Expressiveproject.

[...] In the last three years, I have performed this work under the umbrella of Rogue Wave Software, who acquired Zend in 2015. However, Rogue Wave has recently made a strategic decision to focus its efforts on the Zend Server product of the Zend portfolio.

He also points out that the team largely responsible for the framework and building it over the years (himself, Enrico Zimuel, Zeev Suraski and Dmitry Stogo) will be leaving Rogue Wave and looking for other employment. Don't worry Zend Framework fans - they're going to do everything they can to keep the framework and its ecosystem alive! They're already looking for other sponsors (corporate or otherwise) so let Matthew know if you might be able to help!

tagged: zendframework future roguewave refocus framework ecosystem

Link: https://mwop.net/blog/2018-10-17-long-live-zf.html

Zend Blog:
Zend Framework - ACLs for users with multiple roles
Jul 06, 2018 @ 12:44:25

On the Zend Blog there's a new tutorial posted that covers the situation where a user has multiple roles and you're using ACLs (access control lists). The post shows how to accomplish this with the ZendAcl component of the Zend Framework.

After covering the essentials of the ZendPermissionsAcl component (Access Control unit, Cross Cutting Concerns module, in the Zend Framework Advanced course), many students have approached me to ask, “what happens if a user has multiple roles?”

In this article I discuss the “traditional” way of handling a user who has multiple roles, and then lay out an easy approach which I simply call Mr. X.

The tutorial starts with a bit of a refresher on the use of the ZendAcl component to define the list of roles and resources (and relating the two). It also covers the "everyone" (anonymous) role and adding that into the mix. The "one user, multiple roles" issue is then solved with a multiCheck function that can verify multiple roles at once. Finally it talks about "Mr. X" and how to add that to all users, assuming that they will have the groups/roles information we need.

tagged: zend zendframework acl multiple role tutorial anonymous

Link: http://blog.zend.com/2018/07/05/zend-framework-access-control-lists/#.Wz9wv9hKjUY

7PHP.com:
Interview with Matthew Weier O'Phinney (Principal Engineer at Zend Technologies)
Jul 02, 2018 @ 09:04:02

On the 7PHP.com site Khayrattee Wasseem has posted an interview he recently had with a member of the PHP community and lead on the Zend Framework/Zend Expressive projects: Matthew Weier O'Phinney.

This is the #39th set of PHP Interview to help aspiring PHP developers & PHP fans alike to get inspired by listening from those PHP guys who are already highly involved into the PHP Ocean and being ‘there’ taming the waves, surfing better than ever to make themselves an awesome PHP Expert both in their own eyes (for self-accomplishment) and for the PHP Community.

On the other side, this is an opportunity for new PHPers to get to know their “PHP Elders“. I hope you will derive as much fun to read my interviews as I’m having by interviewing those #PHPantastic guys.

He starts in with a brief introduction of Matthew before getting into the Q&A. Matthew answers questions about:

  • his own background
  • the "components" that make up Zend Framework
  • their PHP 7.2 compatibility goals
  • the volunteers that work with Zend on maintaining the framework
  • the release process for the framework
  • monolithic frameworks
  • Zend Expressive v3

You can check out all of Matthew's answers to these and more questions in the full post.

tagged: matthewweierophinney interview zend 7php series community zendframework

Link: https://7php.com/making-zf-components-compatible-php7/

Master Zend Framework:
What Are Delegator Factories and Why You Should Use Them
Jun 27, 2018 @ 12:17:24

On the Master Zend Framework site Matthew Setter has posted a tutorial introducing you to delegator factories and what they're useful for in Zend Framework-based applications.

Ever wanted to dynamically expand the functionality of an object which you retrieve from your dependency injection container, based on different needs, yet without creating messy, hard to maintain configurations? If so, then you're going to want to know about a powerful technique called Delegator Factories.

He starts with a brief definition of what the factories are and the basics of what they allow you to do (briefly stated, they decorate DI services from the container). He then gets into a practical example, showing the update of a script from v2 to v3 of Zend Expressive, to wrap route definitions in a delegator to handle the difference. Complete code is provided as well showing the initial version of the routing code and the application of the delegator.

tagged: delegator factory zendframework zendexpressive tutorial routing

Link: https://masterzendframework.com/what-are-delegator-factories/

Zend Framework Blog:
Zend Framework/Homestead Integration
May 18, 2018 @ 12:48:26

On the Zend Framework blog, project lead Matthew Weier O'Phinney has posted a tutorial showing you how to set up a Homestead instance for Zend Framework thanks to a few helpful submissions from the ZF project.

Last year, we tagged: zendframework homestead integration tutorial laravel apigility zendexpressive

Link: https://framework.zend.com/blog/2018-05-16-homestead.html

Zend Framework Blog:
PHP 7.2 Support!
May 09, 2018 @ 09:51:55

Matthew Weier O'Phinney has made a post on the Zend Framework blog about the release of PHP 7.2 support for Zend Expressive, now in version 3.

With Expressive 3 complete, we were able to turn our sights on another important initiative: PHP 7.2 support across all components and Apigilty modules.

The short story is: as of today, that initiative is complete! If you are using the Zend Framework MVC framework, Expressive, or Apigility, or any of the ZF components standalone, you should be able to perform a composer update to get versions that support PHP 7.2.

The full story is much longer.

He starts with a look at the path to get to PHP 7.2 support including the considerations for not breaking backwards compatibility as much as possible. He then moves on to the approach they took with changes to the Composer and Travis-CI configuration changes to make it easier to run the tests on multiple PHP versions (with multiple PHPUnit versions too). The post ends with a look ahead at four things coming soon including a PSR-7-based zend-mvc v4, work on the documentation and more tutorials/guides to help devs make the most of Zend Expressive.

tagged: zendexpressive zendframework php72 support path method framework

Link: https://framework.zend.com/blog/2018-05-08-php-7.2-support.html

Zend Framework Blog:
Async Expressive? Try Swoole!
Mar 22, 2018 @ 09:28:22

On the Zend Framework blog there's a new tutorial posted that wants to help you use Expressive for asynchronous request handling with the help of the Swoole extension.

When we were finalizing features for Expressive 3, we had a number of users testing using asynchronous PHP web servers. As a result, we made a number of changes in the last few iterations to ensure that Expressive will work well under these paradigms.

Specifically, we made changes to how response prototypes are injected into services.

The article starts by talking about the issue with the previous response prototype handling, mostly that, in an async world, all responses would be sharing the same instance rather than rebuilding a new one for each request. It then explains their reasoning behind even worrying about async support in the framework's response handling noting that the major reason had to do with the performance gain. The post mentions the Swoole extension and shows how to install it via PECL but you'll need to check out the project's documentation to see how to create a server that makes use of it.

tagged: asynchronous swoole extension zendframework zendexpressive v3

Link: https://framework.zend.com/blog/2018-03-21-expressive-swoole.html

Zend Framework Blog:
Expressive 3!
Mar 19, 2018 @ 12:14:54

The Zend Framework blog has posted their official announcement of the release of Expressive version 3, the latest major release for the Zend Framework-based microframework based around PSR-15 middleware.

Expressive 3 embraces modern PHP, and requires PHP 7.1 or higher. Strong type-hinting, including return type hints, make both our job and your job easier and more predictable. The ability to use all modern PHP features helps us deliver a solid base for your application.

Expressive 3 provides full support for the PSR-15 (Middleware and Request Handlers) standard. [...] Expressive 3 massively refactors its internals as well. [...] Expressive 3 provides more command line tooling and tooling improvements in order to make developing your application easier.

[...] Finally, we recognize that Expressive has changed massively between versions 1 and 3, while simultaneously keeping its primary API stable and unchanged. However, to help users find the information they need for the version they run, we have rolled out versioned documentation, with each version providing only information specific to its release cycle.

The post also lists out some of the new components including zend-expressive-session, zend-expressive-csrf and zend-expressive-hal. There's also links to more information about upgrading, community resources and a "thank you" section to several people that helped get the project to this version 3 release.

tagged: zendframework zendexpressive release v3 major features upgrade thanks

Link: https://framework.zend.com/blog/2018-03-16-expressive-3.html

Zend Framework Blog:
Expressive 3.0.0RC2 released
Mar 08, 2018 @ 09:36:20

On the Zend Framework blog they've posted the announcement of the release of the latest Release Candidate for their Zend Expressive framework: Expressive 3.0.0 RC2.

This week, we've worked on backports from Expressive 3 to Expressive 2, and, in the process, identified a few issues with how the routing package handles implicit HEAD and OPTIONS requests. As a result, we've just released 3.0.0rc2.

The post starts by explaining the "implicit" nature of the OPTIONS and HEAD requests and how the framework essentially defines them without the developer having to. It then shows how to get started with this new version and how to update your v3.0.0rc1 application to this latest release. The post finishes up with a look ahead at the project's roadmap including documentation updates, deprecations and a target release date of March 15th, 2018.

tagged: zendframework zendexpressive releasecandidate release v3rc2

Link: https://framework.zend.com/blog/2018-03-07-expressive-3-rc2.html