zeitwerk
Rector
Our great sponsors
zeitwerk | Rector | |
---|---|---|
9 | 114 | |
1,914 | 8,222 | |
- | 1.9% | |
7.4 | 9.9 | |
16 days ago | 6 days ago | |
Ruby | PHP | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
zeitwerk
-
Enhancing development with REPLs - A practical guide
To setup it's pretty simple, you just need to create a file inside bin/console and require all the files you want to use on a REPL, most of the times we use gems like zeitwerk to provide the auto requiring, but if you want to do it manually, refer to the example below:
-
Performance e elegância! Escrevendo uma CLI CRUD utilizando ScyllaDB e Ruby
zeitwerk
-
How to Load Code in Ruby
Zeitwerk takes a directory and makes every file underneath it available to load. The convention is that every new sub-directory is a new module, and every file defines a class with the same name as the file.
-
To Ruby from Python
There is a gem that does that used by Rails and multiple other gems:
https://github.com/fxn/zeitwerk
It is pretty easy to set it up in any Ruby project.
-
PHP – The Right Way
I actually prefer auto-loading, which lets you iterate through a package manager much easier/faster - PHP iterated through PSR-0[0] before landing on PSR-4[1], and you can always build your own (which is what most frameworks pre-composer were doing).
With Rails 7 and Zeitwerk, the Ruby community has landed on a very similar auto-loading system as PHP now[2] with constants translating to paths by convention.
[0]: https://github.com/php-fig/fig-standards/blob/master/accepte...
[1]: https://www.php-fig.org/psr/psr-4/
[2]: https://github.com/fxn/zeitwerk#the-idea-file-paths-match-co...
-
One Class/Module per File Rules - Working With Nested Modules
If you're working on non-Rails apps and need to deal with loading code, zeitwerk can be used anywhere, unlike the old Rails autoloader. It's also really easy to set up.
-
Move models, views and controllers to non-standard folders
https://github.com/fxn/zeitwerk#collapsing-directories
-
Code Loaders in Ruby: Understanding Zeitwerk
Zeitwerk
-
Ruby on Rails + Auth0: Authenticating your API with an external authentication service
With a few modifications in the gem source code, we could easily integrate Auth0 into our Rails API, but that on Rails 5. Rails 6 brought Zeitwerk code loader together, which makes it harder to perform the alterations suggested in my previous post.
Rector
-
Updating legacy code to php 8.x
For the next phase of updates, I installed PHP Rector.
-
Fix PHP 8.4 deprecation: Implicitly marking parameter as nullable is deprecated, the explicit nullable type must be used instead
Rector is an excellent tool for refactoring and modernizing code. In our case, we will only use the ExplicitNullableParamTypeRector rule.
-
Rector keeps your PHP code base fresh and perfect
As part of the journey to PHP perfection, you should embrace Rector. It's a amazing, free, and open-source tool for migrations, code quality, type coverage, pushing PHPStan to the highest levels, and yes, it can even auto-fix your existing code! It seamlessly integrates into the CI process, making your development workflow smoother than ever.
-
Starting with Rector PHP: Improving Your PHP Code with Automation
Website: https://getrector.com/
-
What Would You Do? PHP 8 and WordPress Theme
If you want a speed boost, there's a tool: https://github.com/rectorphp/rector
-
How to investigate PHP 8.0 compatibility in my application
Rector can help automating some changes.
-
Materials/Topics for Senior dev new to PHP
Yep... Rector
-
Upgrading PHP 7.4 to 8.0
I'd also recommend taking a look at Rector to help automate some of this.
-
Avoiding empty() in PHP
rector/rector
-
7.4 to 8.x upgrade help
https://github.com/rectorphp/rector might be useful.
What are some alternatives?
jets - Ruby on Jets [Moved to: https://github.com/rubyonjets/jets]
PHP CS Fixer - A tool to automatically fix PHP Coding Standards issues
JWT - A ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard.
PHPStan - PHP Static Analysis Tool - discover bugs in your code without running it!
Karafka - Ruby and Rails efficient multithreaded Kafka processing framework
Phpactor - Mainly a PHP Language Server with more features than you can shake a stick at
unholy - a ruby-to-pyc compiler
PHP Code Sniffer - PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.
dry-system - Application framework with state management and built-in dependency injection support
Psalm - A static analysis tool for finding errors in PHP applications
unholy - a ruby-to-pyc compiler - _why mirror
PHPCompatibility - PHP Compatibility check for PHP_CodeSniffer