26

I'm new to Joomla development and I would like to know what tools and/or software can assist me in in developing both the backend and frontend of a Joomla site. This would also include any future maintenance and updates in the future.

10 Answers 10

17

Development

General

  • Composer
    Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

  • Joomlatools Composer Installer
    This Composer plugin will install extensions into your Joomla setup.

  • FOF2 (Framework on Framework 2)
    FOF is a rapid application development framework included in Joomla! It extends the Joomla! Platform instead of replacing it, featuring its own forked and extended version of the MVC classes, keeping a strong semblance to the existing Joomla! and provides HMVC capabilities.

  • FOF3 (Framework on Framework 3) FOF3 improves on FOF2/F0F2 and brings in powerful new tools for Joomla 3. like a new dataModel, Use of namespaces, DI container, Class autoloading for components, a scaffolding builder to rapidly auto create a frame for your component, and so much more. WARNING FOF 3.x is not backwards compatible with FOF 2.x and 1.x.

    • FOF3-Basic A hello world type example for Akeeba FOF3 written as a developer walkthrough for building a Joomla! component from the ground up.
  • Nooku Framework
    Framework for building Joomla extensions with less code.



Extensions Generators

  • generator-joomla-component (A component generator for Yeoman)
    generator-joomla-component allows you to quickly and effortlessly scaffold out a new joomla component, using recommended MVC design pattern and coding standards.

    These include:

    • Internationalization language files
    • Tabs for indents
    • CamelCase variable notation
    • Proper MVC architecture
    • PHPDocumentor stubs for every method, as well as page-level doc blocks
    • Uses ' over ", because that's what the official Joomla library uses
  • generator-joomla-admin-template (A administrator template generator for Yeoman)
    generator-joomla-admin-template is a yeoman generator, which allows you to automatically generate joomla administrator templates for your back-end.

  • Joomla component creator (Free access is limited to one database table)
    Joomla component creator allows you to generate a fully functional, ready to install, custom Joomla component in minutes. It is daily saving Joomla developers hundreds of hours development time.

  • Component Builder
    Component Builder for Joomla that is highly advanced, truly able to build extremely complex components in a fraction of the time.

  • Joomla Module Generator by XDSoft
    Joomla Module Generator by XDSoft simplifies the process and saves your time of developing module for Joomla. It creates structure, creates all the necessary directories and files, generate valid main XML file. As a result, you get a zip package ready for installation.

  • Joomla Plugin Generator by ExtStore
    Joomla! Plugin Generator by ExtStore generates a simple empty plugin with the files required to get you quickly started with your new Joomla plugin. After filling out a quick form with plugin name, author, and description, you get a zip package ready for installation, including language files (en-GB).



Docs & resources

  • I developed a free module generator that's available on my website. Would anyone mind me adding it to this? – Lodder Aug 13 '15 at 8:11
  • @Lodder No, not at all. – Rene Korss Aug 13 '15 at 8:14
15

Environments:

  • Wamp (Windows)
    WampServer is a Windows web development environment. It allows you to create web applications with Apache2, PHP and a MySQL database. Alongside, PhpMyAdmin allows you to manage easily your databases.

  • Mamp (Mac: Both Community and Commercial versions)
    MAMP installs a local server environment in a matter of seconds on your Mac OS X computer. It comes free of charge (community edition), and is easily installed. MAMP will not compromise any existing Apache installation already running on your system. You can install Apache, PHP and MySQL without starting a script or having to change any configuration files!

  • Lamp (Linux)

  • Xampp (available for all platforms)
    XAMPP is a completely free, easy to install Apache distribution containing MySQL, PHP, and Perl. The XAMPP open source package has been set up to be incredibly easy to install and to use.

  • Vagrant
    Vagrant is a tool for building complete development environments. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases development/production parity, and makes the "works on my machine" excuse a relic of the past.

    • Joomlatools Vagrant box (Virtual machine with Lamp stack)
      This project automates the setup of a Joomla development environment. It is capable of running a full featured LAMP stack with a single command so that you can start working on your Joomla projects quickly.

  • Oracle VM VirtualBox
    VirtualBox is a powerful, feature-rich virtualization product for enterprise as well as home use, it is freely available as Open Source Software (GNU GPL).

    VirtualBox runs on Windows, Linux, Macintosh, and Solaris hosts and supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7, Windows 8), DOS/Windows 3.x, Linux (2.4, 2.6 and 3.x), Solaris and OpenSolaris, OS/2, and OpenBSD.

  • Ampps (available for all platforms)
    AMPPS is an easy to install software stack of Apache, Mysql, PHP, Perl, Python and Softaculous auto-installer that can be used on Desktops and office servers.

Joomla3 System Requirements

  • Never used it before but I am starting to use it now for another project and it looks promising, a Joomla vagrant box (virtual machine): joomlatools.com/blog/2013/08/joomla-in-a-box.html – fruppel Aug 12 '15 at 11:13
  • @fruppel - Ahh nice. If I rightly remember, someone was asking about a virtual machine not long ago on here. Please feel free to edit this with any recommendations you have. FFrewin suggested this become a community wiki to users new to Joomla – Lodder Aug 12 '15 at 11:15
  • @FFrewin - Perhaps multiple answers would be better. Maybe if each section (Envrionments, Editors, etc) were separate answers, then the user could add a description and opinion for each one – Lodder Aug 12 '15 at 12:05
  • 1
    @Lodder: Ok agreed, eventually we shall split the answers categorized by section. For the moment I will add a brief reference for 2 DB tools in the answer above. – FFrewin Aug 12 '15 at 12:13
  • This is an excellent resource and should be the base starting point for anybody interested in Joomla development (or any web dev!). Some of these are new to me and I'm going to investigate! Much appreciated :) – jonboy Aug 12 '15 at 16:12
9

Testing:

If you're planning on writing a significant amount of either PHP or JavaScript code then all of the standard PHP and JavaScript development tools will be useful, regardless of the fact that your code will be running within a Joomla environment rather than stand-alone.

On the PHP side:

  • XDebug: A PHP extension for developers that allows you to do things like step through your code line by line to help you find bugs. Invaluable.
  • phpUnit: A testing tool. Write phpUnit tests to make sure your code works
  • PHPMD: PHP "Mess detector". Points out poor quality code. (A lot of well-known projects could really have benefited from using this kind of tool from the start).
  • CodeSniffer and the Joomla coding standards: enforces clean code practice and makes your code easier to read for new developers.

On the JavaScript side:

  • The various browser DevTools features. All the major browsers have good quality dev tools now. Firefox also has Firebug available as a plugin in addition to the built-in dev tools, which is also worth having.
  • JSHint: Points out poor quality code and potential bugs.

There are tons of tools like these, but obviously it depends how serious your coding is going to get -- if you're just knocking up a few dozen lines of code, there's not going to be much point messing around with the most of the above. But on the other hand if you're planning on writing a reasonably sized Joomla plugin and supporting it for some time, then the above tools will be invaluable to you for helping you write it well.

8

Frontend (template, framework etc):

  • UIKit (framework)
    UIKit is only a couple of years old but has become extremely popular. It's a lightweight and modular front-end framework for developing fast and powerful web interfaces and is used for all of Yootheme's templates as of Warp 7. The majority of Javascript have been moved into separate components, meaning you can load each one when and where you want.

  • Bootstrap (framework)
    Bootstrap is an extremely popular, if not the most popular HTML, CSS, and JS framework for developing responsive websites. Bootstrap makes front-end web development faster and easier. It's made for folks of all skill levels, devices of all shapes, and projects of all sizes, and above all, it's open source, therefore it's hosted, developed, and maintained on GitHub by the community. Version 2.3.2 (no longer officially supported) also comes shipped with Joomla 3.x and is used for the default Protostar template.

  • Yootheme (template provider)
    Yootheme is one of the most popular Joomla template providers. They role out a new template (utilizing their front-end framework, UIKit) every month with a unique design.

  • Foundation (framework)
    Foundation is a family of responsive front-end frameworks that make it easy to design beautiful responsive websites, apps and emails that look amazing on any device. Foundation is semantic, readable, flexible, and completely customizable.
  • Semantic UI (framework)
    Semantic is a development framework that helps create beautiful, responsive layouts using human-friendly HTML.
  • Pure by Yahoo (set of small, responsive CSS modules )
    Pure is meant to be a starting point for every website or web app. Pure takes care of all the CSS work that every site needs, without making it look cookie-cutter:

    • A responsive grid that can be customized to your needs.
    • A solid base built on Normalize.css to fix cross-browser compatibility issues.
    • Consistently styled buttons that work with and elements.
    • Styles for vertical and horizontal menus, including support for dropdown menus.
    • Useful form alignments that look great on all screen sizes.
    • Various common table styles.
    • An extremely minimalist look that is super-easy to customize.
    • Responsive by default, with a non-responsive option.
    • Extremely small file size: 4.5KB minified + gzip.
  • Cheers for the separation :). I'll start writing some information for these Frameworks and Environments in a bit – Lodder Aug 13 '15 at 7:28
  • @Lodder: Yes, I wanted to post these db tools with some further info, and thought that the time to separate the answers was now. I think I messed it up a bit with the LAMP link in the environments section. Can you review and add your previous link ? – FFrewin Aug 13 '15 at 7:30
  • 1
    Sure, I think Lamp needs to be installed through Ubuntu and isn't like normal downloadable software. So I'm assuming the link need need to go to some tutorial. Will confirm that though – Lodder Aug 13 '15 at 7:37
7

Browser Tools:

  • Adobe Edge Inspect CC (free)
    Edge Inspect is an essential application for web developers and designers who need to preview their content across multiple mobile devices. Wirelessly pair multiple iOS and Android devices to your computer, grab screenshots from any connected device, and see real-time results from changes to HTML, CSS, and JavaScript.

  • Firebug (Firefox) (Please note that there is a Lite version for other browser but I'd recommend using the built-in inspectors)

  • ColorZilla (Firefox & Chrome)

  • I recommend Web Developer as another great extension for firefox (and chrome). It is very much like firebug, but it is structured differently, so there is some value in using both. – TryHarder Aug 13 '15 at 11:29
7

Editors:

  • Notepad++ (for extreme speed and simplicity)
  • Atom
  • Sublime Text (super fast and feature packed)
  • PhpStorm (Full PHP IDE)
  • Netbeans IDE
    Quickly and easily develop desktop, mobile and web applications with Java, HTML5, PHP, C/C++ and more. NetBeans IDE is FREE, open source, and has a worldwide community of users and developers.

  • Eclipse PDT (PHP Development tools)
    The PHP IDE project delivers a PHP Integrated Development Environment framework for the Eclipse platform. Eclipse IDE is FREE and open source. Requires java installed.

  • Komodo IDE Cross-Platform IDE for all your major languages, including Python, PHP, Go, Perl, Tcl, Ruby, NodeJS, HTML, CSS, JavaScript and more

6

Site Statictics:

6

Databases

Design / Development / Management:

  • MySQL Workbench - (Windows, Mac, Linux)
    MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more.
    With MySQL Workbench you can work directly on databases on local or remote servers. It is available on Windows, Linux and Mac OS X.


  • Sequel Pro - (Mac)
    Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases. It gives you direct access to your MySQL databases on local and remote servers.


  • phpMyAdmin (MySQL administration tool written on PHP - usually found on every host)
    phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL, MariaDB and Drizzle. Frequently used operations (managing databases, tables, columns, relations, indexes, users, permissions, etc) can be performed via the user interface, while you still have the ability to directly execute any SQL statement.


  • Adminer (Similar to phpMyAdmin, but more simplistic and lightweight)
    Adminer (formerly phpMinAdmin) is a full-featured database management tool written in PHP. Conversely to phpMyAdmin, it consist of a single file ready to deploy to the target server. Adminer is available for MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch and MongoDB.


Server Backup Utilities

  • MySQLDumper
    MySQLDumper is an open source project (GNU-license), PHP and Perl based tool for backing up MySQL databases. It is especially suited for shared hosting webspaces, where you don't have shell access and really useful when there is need to backup/upload/restore large databases, where php scripts running out of time, because of the max execution time.

  • phpMyBackupPro
    phpMyBackup Pro is a very easy to use, free, web-based MySQL backup application, licensed under the GNU GPL. You can create scheduled backups, manage and restore them, download or email them and a lot more!

  • AutoMySQLBackup
    AutoMySQLBackup with a basic configuration will create Daily, Weekly and Monthly backups of one or more of your MySQL databases from one or more of your MySQL servers.


Database Version Control:

  • Not sure what category they should go in, but Akeeba's tools are all excellent - Akeeba Backup and Kickstart for transfering sites and giving non-technical people an easy way to make their own backups. A security section is probably worth having, too, in which case Akeeba Admin Tools. – Richard B May 1 '16 at 9:09
5

Version Control:

Source Code:

Database Version Control:

Joomla Site Staging

  • StageIt
    Staging environment extension for Joomla!
    Features:
    • Create a staging environment in seconds
    • Develop on the staging environment with zero risk to your live site
    • Make any changes you like - update extensions, delete content etc
    • StageIt supports ALL third party extensions
    • Sync the staging environment with the live site at any time
    • Visual button allows you to instantly switch between environments
    • Automatic backups allow you to restore your live site to any sync point
    • Configure to work with a range of servers - even GoDaddy!
3

System Requirements for Joomla! 3.x

Also for those that are just starting and want to setup their environment, or simply need to install Joomla, these are the basic system requirements for Joomla to work:

PHP:


Supported Databases:

MySQL:

SQL Server:

PostgreSQL:


Supported Web Servers:

Apache:

Nginx:

Microsoft IIS:

  • Recommended: 7
  • Minimum: 7

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.