Introducing Leaf 3 🎉 #70
Replies: 3 comments
-
Documentation (Plans)As you might have noticed from our tweets, we are refreshing our documentation again. We are providing a brand new documentation experience for users, this new website will be our main website hosted at https://leafphp.dev. Leaf MVC, Leaf API, Skeleton and a few others will be hosted on subdomains on the main site eg: https://skeleton.leafphp.dev Our current docs (https://leafphp.netlify.app) have been moved to https://archive.leafphp.dev, all version 2 docs are available here as well. Note that we are actually not archiving the current documentation, as updates to leaf 2 will still be documented in there. leaf 3 docsLeaf 3 documentation is a completely new experience compared to leaf 2. Leaf 3 docs focus on clean, simple and straightforward developer interactions, a brand new colour swatch matching the rebrand in leaf's logo. It has currently gone through a couple of iterations in its design. |
Beta Was this translation helpful? Give feedback.
-
What's Left?There's actually a whole lot left to work on with Leaf 3. Over the past weeks, we've done a lot of work on leaf core, separating leaf into modules, writing new modules, refactoring code generally, code and performance optimizations, new features.
This list will be updated whenever anything changes |
Beta Was this translation helpful? Give feedback.
-
Release plansThe first preview of Leaf 3 has been released. Previews are released when the Once all modules are deemed safe for use, our official beta will be released and will run for a few weeks. When leaf 3 beta is stable and suitable for use in production-ready apps, the official v3 release will be published 🚀 Timelines
The is the first preview of Leaf 3. We believe that most of the features are stable, however, we are still finalizing some changes made to Leaf's other packages (Leaf API, Leaf MVC and Skeleton). Although features have been tested over and over again, there is always the chance of undiscovered bugs. We see this preview as the structure for what leaf 3 will look like. So although things may change between our preview releases, the base structure and main features will not change. We may or may not have multiple previews. This simply depends on how well Leaf 3 performs and how many more features we need to test.
Once we feel feature-complete, we'll release the official Beta version. This will be a build-up on the latest preview changes, but will only include features that will make it to the final release. These features may still have uncovered bugs and the beta phase will be to fix all these. We encourage all community members/leaf enthusiasts to help with this 🥺
Although this wasn't originally part of our release plan, we want to give everybody the chance to try leaf 3 in production. There will be no new features after the beta, meaning the RC will be exactly the same as the stable version.
As mentioned, the need arose for a second release candidate. This contains fixes and improvements from the previous RC along with some pretty cool upgrades to the way some features work under the hood.
This is pretty much the same as RC 2 since no bugs were found during the RC period 🚀 Please continue to contribute to Leaf 3, leave a star, an issue if you notice any bug or just a little message in our forum ❤️ |
Beta Was this translation helpful? Give feedback.
-
Welcome
Leaf 3 has officially been released. Check out the changelog here
This is a discussion introducing Leaf 3 and talking about its features. For a rough overview of what led to leaf 3 and some earlier iterations of Leaf 3's features, you can check out this article by @mychidarko.
This discussion however goes in-depth into the features, changes and also is a space for the community to contribute and share ideas on the best way to move forward.
Why another major version?
Since Leaf 2 is doing really well, with v2.6 released a few months ago, why would we want to move on to a new major version? There are a bunch of reasons for this which I'll go over below.
This discussion above states some of Leaf 2's features and how easy it is to use them in your app. Leaf 2 provides a ton of features and unparalleled simplicity to match that, however...
Leaf 2 bloated without even realising it. Although Leaf 2 is still one of the most lightweight frameworks out there, it has a lot going on, and has features people don't use in everyday development so we decided to strip off those features and return Leaf to a clean simple state where other features will be served as installable plugins.
Considering all the goodies that would come out of this new version with the introduction of modules, source code less than 40kb, blazing speed, component rewrites and so much more, we decided to use this opportunity to refresh Leaf's identity and we did this thoroughly 🚀
Leaf comes in with a new logo which looks simpler (going back to our vision) and a dark theme showing usability. Leaf 3 takes usability and simplicity to a whole new level without sacrificing any of the powerful goodies you need 😇
What's the fuss about leaf 3?
cors
module is based on the nodejs cors package which is popular and easy to use. Leaf 3 also packs in a ton of functionality with its wide gallery of modules.Notable additions
Modules?
Modules are pieces of leaf's functionality that can be separately installed, maintained, edited, ... If you've read this far, you've probably seen the benefits of modules, however, there's more.
If you have been following leaf since v1, you might have noticed that leaf has always had loosely coupled features which we have been calling modules/plugins since day 1😅
This is a path that we have been building since day one
Functional mode?
Functional mode is basically a bunch of global functions which allows you to build cleanly and seamlessly without initializing any package or without any namespaces.
Leaf 3 comes with a few functions, however, Leaf 3 modules can extend Functional mode and add additional globals to your leaf app.
A simple Functional mode app will look something like this:
You can clearly see there are no namespaces or class initializers.
Using leaf 3
We are glad to announce that Leaf 3 beta has been released for public use. It is stable and you can expect it to work just fine. You can install this using composer.
Or with the leaf CLI:
If you however want to keep up with the development of Leaf 3 and have the latest updates the moment they're pushed, you can install the
v3.x-dev
branch.You can read the setup docs for leaf 3 to create your first app with functional mode.
Migrating
We have a migration guide on our new documentation site. You can checkout migrating from leaf 2 or migrating from another library if you have an app powered by another framework or library.
We will add more information and track progress on Leaf 3 and other stuff below. Your questions and suggestions are all welcome as well. 🚀
Leaf 2
Leaf 2 is still going to receive security updates and important new features added in modules. There will be no breaking changes in leaf 2.
Leaf 2 documentation has also been hosted at https://archive.leafphp.dev. This means that until you are ready to move to Leaf 3, you can still confidently stick to version 2.
Beta Was this translation helpful? Give feedback.
All reactions