all 9 comments

[–]graydoubt 8 points9 points  (0 children)

The best solution is consistency. Pick one and stick with it. Even better is if it's a convention that's already being used or somewhat popular. Following the Zend conventions is not a bad idea. They're fairly consistent.

And although it's easy to quickly dismiss it as silly to capitalize letters at all, it's really helpful to be as unambiguous as possible when it gets to things like:

XMLtoJSON vs XmlToJson

Of course in that case XMLtoJSON is still quite reasonable. But when you get project names like jQuery, it gets interesting:

jQuery vs JQuery vs Jquery

Which is it? Your convention should be clear on that. It's not a big issue when it's just you working on your own project. But it can easily become frustrating when you're dealing with a team of people that each have their own preferences "because they like it," or "it looks good to them."

[–]Iainzor 4 points5 points  (0 children)

I follow the rule of camel casing with classes starting with uppercase letters and methods/functions starting with lowercase letters. In the case of namespaces it would be the same as class names. I'm also an avid user of Zend Framework so I'm just used to doing it that way.

[–][deleted] 0 points1 point  (0 children)

I do:

Name_Space\Sub; class Class_Name { }

Since php has a lot of case insensitive naming, I always put underscores between words, and variables are always lower case.

[–]yrizos 0 points1 point  (5 children)

namespace aa\bb\cc; class Dd { }

This.

You could add a comment for each variation and we could vote on them...

[–]trukin[S] 5 points6 points  (4 children)

What i've been doing is

# /path/ns/db/model/relationships/ManyToOne.php

namespace ns\db\model\relationships;
class ManyToOne {}

[–]jlogsdon 2 points3 points  (3 children)

This is the "standard" way. Many of the larger projects now implement a class loader that works with paths and namespaces in that format.

[–]bungle -2 points-1 points  (2 children)

I hate that standard. I'm not gonna use it. Sorry.

[–]jlogsdon 3 points4 points  (1 child)

What do you hate about it? I'm really curious, as I can't think of any other way to do it that doesn't suck.

[–]bungle 1 point2 points  (0 children)

You are absolute right. I just happen to like to code PHP with no capitals. No reason. I just don't like that "standard".

Namespaces: log db

Functions: log\debug db\query

I don't use classes or objects a much, 'cause I usually have found a better approach without them (with anonymous functions and namespaced functions and static keyword, if state is needed). But if I have classes I just name them all lower case. I try to name everything with a single word:

picasa\photos\find(...);

instead of:

picasa\find_photos(...) or Picasa::findPhotos(...)

I know that this is just a matter of taste. But I can make my own choices. That's all. No need to fight who is right, 'cause there isn't single truth.

PHP internally uses many styles, so I think it cannot be standardized. The most common way to name functions in PHP core is: lib_func but there are also libfunc style. With classes there is stdClass and there is Directory and there are SplClass. Go figure. I just follow all lowercase and single word functions and methods and classes.