Waiter! Waiter! More MVC Frameworks in PHP 8 Please!! :D
Find a file
acxyz 21c351c483 Add "examplefile_pixmicat.php" + refactor UTF8 strlen logic with type hints from Pixmicat!
Refactor: Integrate UTF8 strlen logic with type hints based on code from Pixmicat! PIO 8th Release.4.
Specifically from strlenUnicode($str) in Pixmicat!'s /lib/lib_common.php in the master branch.

Testing file
2025-11-27 14:49:53 -05:00
examplefile.php fixed name typo 2025-11-27 13:12:38 -05:00
examplefile_pixmicat.php Add "examplefile_pixmicat.php" + refactor UTF8 strlen logic with type hints from Pixmicat! 2025-11-27 14:49:53 -05:00
LICENSE Reformatted for easier wording 2025-11-27 10:14:39 -05:00
README.md added basic readme dbkp0iornaigj0-sieraijognwj-0ofzdbixvc n 2025-11-27 10:27:32 -05:00

🌸 Carnation-MVC: Simple, Fast, and Fun PHP Framework

If you clicked this file because you thought: 'I wanna help out! :D'. Then you're (probably) in the right place.

📜 Licensing At a Glance (Artistic License 2.0)

This quick summary outlines your rights and responsibilities.

Section Icon Requirement/Protection
Permissions Commercial use, Distribution, Modification, Patent use, Private use
Conditions - License and copyright notice (In every file)
- State changes (via .diff/.patch files w/ optional narrative explanation)
- OPTIONAL: You may disclose source. (Keep license & copyright notice with it)
Limitations NO Liability, NO Warranty, NO Trademark Rights Granted

For full details, please see the LICENSE file and description.

💭 Our Philosophy: Simple, Fast, and Fun

This MVC was designed so you could turn your pretty .html-only website into a dynamic webpage (without the tech debt of updating/modifying).

Designed to be clear and as simple as possible... AND FAAAAAAAAAST!

🎯 Why Explicit Types Are Required

You might be a bit weirded out by the REQUIRED Explicit Type Declarations. This is both for Readability & JIT performances.

We're using explicit types because they give the PHP JIT compiler with crucial hints. Without it, the compiler has to add more checks to play safe.
This allows the engine to skip runtime type guesswork and produce faster, optimized machine code.

This is a core part of modern, high-performance PHP!

🛑 Why We Avoid Namespaces

And potentially controversial, we will NOT use namespaces. I'M NOT DOING THAT. >:(

It makes the codebase rigid for little benefits besides 'I get to use the same name! :D'. The reasoning being:

  • Overly complex nesting
  • Ambiguity
  • Longer testing.
  • And especially nconsistencies in how PHP resolves namespace'd functions versus classes.

The simplicity of the project allows simple, easy, and quick contributions. For these reasons, we will NOT use namespaces in the project.

💖 Culture & Community

We want to welcome developers of all levels, including the new guys, as it could be a learning experience and helps our goal of low barrier to entry.

And finally, don't take it too seriously. Just have fun with it!

Don't force yourself to work on it, because that turns fun => work. And nobody likes it to feel like work.
We want to focus on the fun and avoiding burnout. Just take it easy! (^__^)

For more details, all contributions must follow the Contribution Guidelines (found in CONTRIBUTING.md).

We've kept them simple, focusing on four-space indentation, K&R style, and, most importantly, fun! :P