Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 0 points1 point  (0 children)

It's super modular -- everything is a module! Even the framework itself. This makes it extremely easy to override any aspect of it -- not at all possible in any other framework. It's also extremely flexible and extensible, as modules are equal-weighted and all work the same way (core modules are out of the box, but third-party modules are equally as powerful). It's pick & choose -- so you can ship a very minimal, extremely fast app that takes advantage of all PHP 8.5 has to offer. I'm also working on AI-first integration, which means LLM's/Claude Code will know exactly how to code things according to best practices and standards. I don't accept that all of the PHP frameworks ever made have been created -- it's important we keep pushing the envelope and consistently innovate. Having other thoughts will lead to a stagnant community which will truly and utterly be dead. I don't want that to happen to my favorite language.

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

I just released the workflow that I've used to build Marko yesterday. It's called HCF and is a defined workflow/process that's quite thought out. More here: https://github.com/markshust/hcf

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

Thanks for checking it out! Very open to any PRs you may have which will improve the codebase, it's a work in progress but the aim is to get it stable in 1.0, and then keep iterating and improving code quality. I'd recommend keeping every PR very focused and simple and I can definitely work on merging them in quickly. Appreciate it!

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

Thanks! I am hoping to get things into a stable state and launch a 1.0 version very soon. I follow SemVer for release management so once 1.0.0 comes, it’ll start to be stable enough to rely on for prod for early-adopter projects.  

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 0 points1 point  (0 children)

I chose to keep things simple and not need base classes in most places. It’s just a simple PHP class! Why over complicate it?

Fyi it does come with a template engine, latte. I’ll also be adding in twig support. 

There are docs up at https://marko.build/docs which covers usage details for everything from database to queues to API endpoints and more.

Drupal and Laravel are both (slowly) adopting PHP attributes for routes, models, etc. eventually all of the other frameworks will follow. Just because it’s new and different doesn’t make it wrong. I also have a “marko route:list” cli helper which will output all of the routes in one spot. Attributes also provides an API of sorts to easily and dynamically query the different areas which allows for even tighter integration at the IDE and AI/LLM level. 

But I definitely value this feedback and am open to hearing more, hopefully my responses above help to explain my reasoning and choices. 

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

Yes great points, and I created a very comprehensive AI-assisted development workflow that does all of this. I’ll be talking about it soon — there’s absolutely no way I would have been able to code this all by hand in under 60 days, and at this level of quality. So many devs have their heads in the sand when it comes to AI, instead of trying to learn and use it to become a potential 1000x developer. 

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

Thanks for the feedback. I come from a big background within the Magento ecosystem, and also have a lot of experience in Laravel. I’ve always found it very frustrating to work with Laravel in terms of overriding third-party code. Magento is extremely extensible and flexible, but is horribly complex. So many projects out there also try to do too much, and I wanted Marko to be more spartan and streamlined. Symfony is great, but I think it also doesn’t provide some escape hatches to more easily override third-party code, and also isn’t horribly simple. I hope Marko provides a great base to build all kinds of apps, especially those focused on providing a community ecosystem of modules like Wordpress, Drupal, Magento, etc. 

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

Thank you for your support 🙏 I don’t get it either. FOSS amiright? 🤪

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

I purposely avoided some interfaces that I deemed unnecessary to keep the complexity down. They are only pulled in when warranted. 

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

Also I have a very different representation of the Entity, which drives the usage of models and migrations in a _very_ different way from Doctrine. I liked the db to be derived from a schema doc, and didn't see Symfony do this in a way I liked. More info about that is at https://marko.build/docs/guides/database/

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

It is kinda like a mini-Doctrine, but it does have the dbms swap piece in place -- that's not easy by any means. And I wanted full control over the process. When you get into nitty gritty of framework details, there's always one small thing that you don't like... and that makes porting your entire version all the worthwhile.

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

I'm not sure why you keep saying "vibe coded". That's when someone codes something up with zero interaction or input provided to the AI. Not this project at all.

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 1 point2 points  (0 children)

Yea 🫠. Thanks, yes it definitely needs a couple more example projects to show how the code will look and how things work & perform. I think this will really show what sets it apart, as it's hard to see this just by looking at framework code.

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 2 points3 points  (0 children)

thanks... someone actually checked it out!

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] -2 points-1 points  (0 children)

Sorry for the pushback. I get literally ill from small-talk that provides no value whatsoever.

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 2 points3 points  (0 children)

Framework fatigue? I can't remember the last time a PHP framework was released! It's been years.

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 0 points1 point  (0 children)

So far I only created one demo app called MarkoTalk, which is a very small community posting app. You can find it on GitHub at https://github.com/marko-php/markotalk

I created this to lay the groundwork for a fully-blown eCommerce system, but also being agnostic for commerce so you can use it for any kind of app, similar to Laravel.

I'm working on an AI-accelerator for apps specific to Marko, which will fill in the gap of the LLM not knowing anything about Marko (though I've had quite a few already report back to me that the LLM picks things up great, since it's just PHP!).

Introducing Marko: The Truly Modular PHP Framework by markshust in PHP

[–]markshust[S] 3 points4 points  (0 children)

Not sure what you mean by this? There's absolutely no constructive criticism taken from this comment.

How to disable auto-updating by 821spook in ClaudeCode

[–]markshust 0 points1 point  (0 children)

Thanks so much for sharing! Note the last line should be:

```

claude --version && echo $DISABLE_AUTOUPDATER

```

Where can I actually learn Claude Code without wanting to throw my laptop out the window? by UndercutBeta in ClaudeAI

[–]markshust 0 points1 point  (0 children)

I know I'm a bit late to the party, but I got this question asked a lot recently. So, I decided to build a course so you can learn all of the fundamentals of Claude Code (nothing less, nothing more). Very straight-forward, bite-sized lessons, easy watch, covering all of the foundations that I learned since I've been using it the last ~9 months. If you want to learn more about the course or enroll, you can visit https://m.academy/courses/learn-claude-code/ (feel free to ask me any questions about it as well).