+1 for one or more members of the Drupal community being involved in developing these standards
+1 for Larry being one of these members
+1 for making a serious effort to adopt the standards that make sense for Drupal (especially for D8)
+1 for not adopting the standards that don't make sense for Drupal
+1 for requiring PHP 5.3 for D8 (that's obviously not a community decision yet, just me saying I'd support a GoPHP 5.3 project) +1 for using real namespaces once PHP 5.3 is a requirement, and following standards that support interoperability and prevent collision with other frameworks (it is so presumptuous of us to have global functions named url(), show(), hide(), etc., and we occasionally run into problems because of the overloading of underscores and hyphens to be pseudo-namespace delimiters and word separators).

Thanks so much, Larry. I'm glad you're involved.

[email protected] wrote:
The current draft is here, I think: http://groups.google.com/group/php-standards/web/final-proposal

It seems to cover fewer things than they used to, but the one it does cover is the one that is least Drupal-friendly; specifically it mandates a direct Java-style mapping from namespace and class name to file name. I dislike that and find it fundamentally Drupal-incompatible, but we'll see.

As for the level of workload, that depends on what the standards end up as and how much of them we decide to adopt. Some of the earlier bits (I don't know what's happened to them in the past few months), like always naming an interface *Interface, are already part of our coding standards because I started doing that for DBTNG, which became most of our OO standards. (That was coincidental at first, and later on deliberate.) There's already some exception-related changes we'll need to make to conform to our own standards, but those should be low-impact.

The big impact, I think, will be related to namespaces. We're not using those yet, and can't until we require PHP 5.3. The odds of us doing that for Drupal 8 are, I think, slim. Hopefully by Drupal 9 we can do so, but that will depend on how the PHP market evolves. (I wonder if I need to start a GoPHP 5.3 project... <g>) TBD. If we know what the standard is going to be, though, we can certainly look at moving ourselves in a direction that will be easy to migrate to namespaces when we get there. I've been giving that a fair bit of thought recently (mostly relating to treating modules as a namespace, or sub-namespace), but there's no game plan there yet. If we can use the work of this group as a long-term roadmap planning tool, that would be great.

Ken Winters: Yep, I'm all over that thread. ;-)  ("Crell" is me.)

Brian Vuyk wrote:
Larry,

Your approach on the matter sounds reasonable.

In the abstract, as far as it meshes with the current architecture, we should try to comply in the interests of accessibility and interoperability of our codebase.

That said, I have no idea what their standards actually entail. what would we be looking at in terms of code modifications to match up with these new standards? What kind of refactoring and rewriting would this take? Would this be a relatively simple job, or would we be looking at a good portion of the D8 or D9 development cycle to come to compatibility? What kind of workload will this place on the Drupal dev community?

Either way, you are a good person to have in that discussion.

Brian Vuyk
http://www.brianvuyk.com


[email protected] wrote:
Back in the spring, a group of PHP developers from several popular "pure frameworks" got together and started a PHP standards working group. Their goal was to standardize certain OO coding standards, in particular the use of namespaces, across PHP projects, even if such standards necessitated some changes in the participating projects' existing code bases.

There was some fallout about the group being self-declared and trying to establish project standards by fiat, with a number of people, myself included, objecting to either the fait accomplis presentation, the details of the proposed standards, or both. Eventually the core team moved off to an invite-only list, and I largely lost track of them.

Yesterday, they decided they should invite in representatives from a few other frameworks and projects, including Drupal. I discovered this when I suddenly found myself on the list and getting messages, as I'd been sitting in the pending membership queue for months. :-) So apparently I'm now the "Drupal representative". Goodie...

So before I open my big mouth, to what degree are we interested in being involved, and to what degree are we willing to play by the standards this group develops?

Personally, I think we should try to do so where possible. It's good for inter-operability, reduces the learning curve for PHP-knowledgeable developers coming into Drupal, and frankly a lot of these people have been working with OO PHP a lot longer than we have so there's much to be learned from them. It also means that we can begin to shift ourselves in the "right" direction for whenever we're able to drop PHP 5.2 and rely on PHP 5.3 namespaces, which will open up all sorts of new and exciting power and weirdness.

However, I'm not sure that we should commit to following the developed standards, period. As of the last draft I saw, some of them would not, I think, even be compatible with a modular full-stack framework like Drupal to begin with, mostly regarding a universally-applicable autoload pattern.

So I would like to go into the process with a statement of "we'll be involved in developing such standards and will adopt them wherever feasible, but we do not commit to following all standards if they are incompatible with Drupal's basic architecture."

+1, -1, feedback, flames, recriminations, encouragements, death threats...?

--Larry Garfield


Reply via email to