Re: Gallery's K3 class name/dir/file conventions (was "Capitalization")

Bharat Mediratta <[email protected]> Sun, 24 Mar 2013 17:17:27 -0700
Newsgroups gmane.comp.web.gallery.devel
Message-ID <CAESa+_n4cMyYMk+9uTuftYeeedrO+hcZnAyT_8BEnMR5nWJabA@mail.gmail.com>
All looks good for me.  If you miss a few or get a few wrong it's no big
deal, we'll be able to figure them out from context and fix them up.


On Sun, Mar 24, 2013 at 3:34 PM, Shad Laws <shad-xpYdmXCiSuZWk0Htik3J/[email protected]> wrote:

> Hey Bharat,
>
> Woohoo - I think we've finally arrived on the same page!  Good
> conversation, though... I feel like we both figured out a lot of nuances in
> the process.  Onward!
>
> My roadmap for the near future:
> 1. Finish moving around the remaining files in the gallery module (tonight)
> 2. Fire up a module-wide grep to try and autofix as much as I can to avoid
> changing every class/file name by hand (tomorrow)
> 3. Do the same thing to the user module (next couple days)
> 4. Start getting up to speed on Formo (afterward)
>
> If it helps your workflow, I can invert the order of 2 and 3...
>
> For #2, I could use a little input.  For class names, I'll grep for the
> following patterns (not yet carefully regex-ized, but you get the idea):
> 1. class::
> 2. new Class
>
> Also, I'll look for these, but check them one by one:
> 1. call_user_func, call_user_func_array
> 2. $classvar::
> 3. {$foo . "bar"}::
> 4. new $foo
> 5. new {$foo. "bar"}
> 6. class_exists, method_exists
>
> Additionally, I'll look for other files (media, views), which I think all
> occur within double or single quotes.  I may look for View( just to be sure
> I got all the views.
>
> Any others you can think of that'd be useful to grab?
>
> Take care,
> Shad
>
>
> On 24 March 2013 19:34, Bharat Mediratta <[email protected]> wrote:
>
>>
>> On Sat, Mar 23, 2013 at 3:21 PM, Shad Laws <shad-xpYdmXCiSuZWk0Htik3J/[email protected]> wrote:
>>
>>> If we're sticking with Kohana's functions and not making a
>>> wildcard-savvy loader, then this conversation is kinda moot, but for fun...
>>>
>>> <pseudo-philosophical tangent>
>>> I feel like there are three different cases here:
>>> 1. Not require a rule. (make the wildcard-savvy loader)
>>> 2. Require a rule. (be opinionated and enforce one way to do it)
>>> 3. Require a rule and make you define it. (extra line in module.info)
>>>
>>> While there are certainly arguments why 2 is better than 3, in the
>>> general case, it seems like 1 could often be better than 2, no?
>>> </pseudo-philosophical tangent>
>>>
>>
>> It's not clear to me when that would be the case - so I worry that it's
>> flexibility for flexibility's sake.  I'm ok with that if it doesn't come at
>> a cost, but in this case it makes the explanation harder.  For example,
>> it's easier for me to say "create modules/tag/classes/TagEvent.php and put
>> this in it" vs. saying "create a file in module/tag/classes that ends in
>> Event.php, like TagEvent.php and put this in it".  I'd probably just tell
>> people to use TagEvent in that case.  So then most people would follow this
>> convention - and then what would be the need for a different option?
>>
>> I'm open to this - just want to understand the value proposition.
>>
>>
>>>  I'm a little mixed on this.  Some thoughts:
>>>> - I can't tell if I like the separate subdir or not.  Frankly, that
>>>> implies that there's something to separate from, but many modules can do
>>>> everything they need to do with just and event handler and a block, etc.
>>>>
>>>
>>> Personally, I do.  To me, it has a similar significance to Controller or
>>> Model, in the sense that the names of their functions have special meanings
>>> outside of the class itself.  This is not the case, for example, for the
>>> Tag.php helper, which is why it shouldn't be in any subdir.
>>>
>>
>> I'm definitely coming around to this idea.  I haven't heard a name that I
>> like, yet though.  "Gallery" is used.  "Module" is too close to "Model".
>>  "Hook" is the best I've heard but I'm mildly worried that there'll be
>> cognitive conflict with the fact that some things inside that directory
>> won't be "hooks" per se (tasks, etc).  But the more I think about it the
>> more I like it.
>>
>>
>>> I think by now I'm convinced of all points you just made, with the sole
>>> exception being the separate directory for Gallery-specific stuff.  I think
>>> it gives a meaningful distinction between it and the other stuff.  Also,
>>> it'd give us the added benefit of being able to change our mind at a later
>>> date should someone decide to build an even-more-optimized,
>>> wildcard-capable loader.
>>>
>>
>> Agreed.  Let's go with Hook for now and then if we come up with a better
>> name before launch it should be easy to just fix up everything.  Onwards!
>>
>>
>>> On a semi-related note, how do we feel about underscores in "views"
>>> names?  I like the idea of adding a teeny bit of hierarchy like you did
>>> with the Tag example (certainly no more than 1 level), and that removes a
>>> decent number of them, but not all.  Example: is
>>> /modules/gallery/views/admin/advanced_settings.php fine?  My vote is yes,
>>> personally...
>>>
>>
>> Underscores don't seem to mean anything in view names, eg:
>>
>>   modules/userguide/views/userguide/examples/hello_world_error.php
>>
>> That'd be loaded as "userguide/examples/hello_world_error.php" as far as
>> I can tell.  I can't find good examples of this - but I also don't think
>> that it makes sense for it to be "admin/advanced/settings.php" so I also
>> vote for "admin/advanced_settings.php".  If we find a better model in the
>> future, renaming all this stuff should be easy and backwards compatible.
>>
>> OK!  I think this means it's time to write some code?  I'm going to get
>> going on seeing if I can sort out the IdentityProvider code...
>>
>>
>

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar

__[ g a l l e r y - d e v e l ]_________________________

[ list info/archive --> http://gallery.sf.net/lists.php ]
[ gallery info/FAQ/download --> http://gallery.sf.net ]