n98-magerun is a very useful tool when working on Magento stores. It saves time and makes a lot of Magento development related tasks much easier. Check out a list of my 10 favorite commands.
This one is a must have. It’s a good replacement for an Extension Conflict module which I have been using before I found the n98-magerun. It shows rewrite conflicts in a clean ASCII table:
Command opens a mysql command line client without need of looking for a host, a port and credentials in local.xml file.
However, it doesn’t work on a server with proc_open() function disabled.
It flushes all Magento caches. If a store uses filesystem cache, this command isn’t much more helpful than simple rm -rf var/cache* var/full_page_cache/* . However, when using the n98-magerun I don’t need to wonder what cache type is used in a store and this command provides an interface working for all cache types.
The only glitch is that in some cases it doesn’t clean cache if file permissions are not correct.
Prints list of all active CRON jobs configured in a Magento store. It shows output in readable way, showing a job code, minutes, hours, days, month and week days.
Another usable command related to CRON may be sys:cron:history which lists recently finished CRON jobs.
It’s useful to run database updates from a command line when installing an extension or upgrading Magento.
Recently I used that when working on a Magento upgrade from 1.12 to 1.14. Frontend kept throwing error as PHP code was trying to use things which haven’t existed in the database yet, but sys:setup:run command dealt with that perfectly.
This could be used when working on templates, to clean them from not needed files. I ran that command in 3 projects I’m working on and it found a few duplicated templates.
n98-magerun.phar dev:theme:duplicates enterprise/rocketweb base/default
Command allows to quickly show an overall picture on the store. It shows a store edition and version, list of vendors coming from all code pools and a few other information. Additionally it shows basic factors which can determine the store size – amount of attributes, categories and products.
It’s handy when starting to work on an already existing site.
It checks for missing system paths such as media/, var/ or a local.xml config file and checks if required PHP modules are installed. For example on my local server it keeps complaining about a missing index.php.sample file and about missing bytecode cache extension. I will need to get rid of this to get a nice green output :-)
Additionally it checks if each base URL contains dot, however I don’t get this part.
This opens an interactive console with Magento initialized. It’s marked as experimental but works pretty well. It allows to run code in interactive way, most useful when I need to check multiple objects one by one eg. go through blog posts. For example to open console run:
And then run code to dump the blog post data:
Zend_Debug::dump(Mage::getModel('blog/post')->load(3)->debug()); Zend_Debug::dump(Mage::getModel('blog/post')->load(4)->debug()); Zend_Debug::dump(Mage::getModel('blog/post')->load(5)->debug());
It lists all modules along with fields like code pool, key, version and status.
Documentation says it’s possible to filter list by a code pool and a status, but I couldn’t get it working. It simply shows nothing when I use any filter. However, even without filtering it’s pretty useful.
I chose these 10 commands as most interesting, but there are many other handy tools: a command for working with database dumps, a command for debugging Magento configs and all toggle commands which allow to enable/disable things like a cache, a demo notice, template hints and many more.
Take a look on http://magerun.net to see all of them or better just play with the tool. Also make sure to subscribe my RSS feed or my twitter as soon I will talk more about cool n98-magerun use cases.