Hi, I wrote a rough patch to add new class entry "definition" for
grouping functions, consts and vars.
https://github.com/kuzuha/php-src/compare/feature;definition
As you know, defining a lot of constants makes php slower.
I think autoload is very nice solution to avoid that problem.
Autoloading skips unnecessary code and makes php faster.
The "definition" block means Grouped defines. That gives autoloading
to function, consts and vars. And PSR-0 helps simplify directory tree.
Pros:
-
Never mind where to put .php file for definitions. Following PSR-0 is
nice idea. -
Can refactoring definitions without hesitation.
-
Separate implementation from definition specifically.
Cons:
- Big impact to language.
How do you think about this?
I hope I'll get your feedback.
Best regards,
Kuzuha SHINODA<kuzuha01@gmail.com
I think autoload is very nice solution to avoid that problem.
Autoloading skips unnecessary code and makes php faster.
The "definition" block means Grouped defines. That gives autoloading
to function, consts and vars. And PSR-0 helps simplify directory tree.
Can you not just have a class defined final and use that?
Pros:
Never mind where to put .php file for definitions. Following PSR-0 is
nice idea.Can refactoring definitions without hesitation.
Separate implementation from definition specifically.
So, I'm sure the following meets the criteria of all of most of the
tests in your example;
<?php
final class FooConstants
{
const BAR = 'baz';
}
Also, I'm not sure where having static methods available is of use to
solve the problem of constants.
This doesn't bring any new functionality to PHP, just a different way
of doing something. If I'm missing something please elaborate.
2013/9/20 kuzuha kuzuha01@gmail.com
Hi, I wrote a rough patch to add new class entry "definition" for
grouping functions, consts and vars.
https://github.com/kuzuha/php-src/compare/feature;definition
As you know, defining a lot of constants makes php slower.
I think autoload is very nice solution to avoid that problem.
Autoloading skips unnecessary code and makes php faster.
The "definition" block means Grouped defines. That gives autoloading
to function, consts and vars. And PSR-0 helps simplify directory tree.
This is nothing else than a "static class" of C#, which does nothing but
enforcing self-discipline.
We can already do all these stuff with a standard PHP class. Besides, a
standard PHP class offers Late Static Binding, which gives a very nice
mechanism to expand a library. How does your "definition" block provide
anything similar?
Lazare INEPOLOGLOU
Ingénieur Logiciel