4 ms·
Crystal: PHP microframework based on anonymous functions
- smt88 12y agoWhy use this instead of Slim? Slim is basically a fully-baked version of this (with a similar router), and it's decoupled, so you can use only the parts that you want.
- EmanueleMinotto 12y agoIt's more an experiment than a real microframework, it's absolutely not recommended for production. The contributing page should sound like a challenge :) https://github.com/EmanueleMinotto/crystal/wiki/Contributing https://github.com/EmanueleMinotto/crystal/wiki/Contributing
- deleted 12y ago[deleted]
- smt88 12y agoWhat's the point of these restrictions? They're not strange/crazy enough to make it a fun programming challenge, and for something that's intended for use (even non-production use) they make the code less usable. "No namespaces" and "no new functions or classes" in particular don't make any sense. Anonymous functions are just like functions, except they're harder to identify in a stack trace.
- krapp 12y agoIt looks interesting, but maybe consider setting it up as a Composer package?
- EmanueleMinotto 12y agoI considered it, but for some reasons I didn't do it: 1. the main closure is useless if the .php file isn't included manually using require(_once)/include(_once) functions ( https://github.com/EmanueleMinotto/crystal/wiki/Tip https://github.com/EmanueleMinotto/crystal/wiki/Tip ) because it returns directly at line 144 2. the autoloader become useless too, because there's Composer that does it very well 3. the PHP world is full of great frameworks, microframeworks, routers and other components, it will become rapidly a common library and not a good library because it doesn't follow development best practices but only a set of rules (defined in the CONTRIBUTING.md file) Crystal can't be packed in a Composer package, but Composer can be used in a project including crystal.
- krapp 12y agoI like the minimalism of it - but I really don't like returning a value from an include like that. Just seems wrong. Personal preference though.