On the previous page, we saw the softwares required to run UserFrosting. Now it's time to look at tools you'll need during development to build your UserFrosting application. These tools are not strictly required to be installed on your production server, which we'll cover in a later chapter.
During development, and before you're ready to deploy, you'll want to have the following tools installed:
The command line interface, or CLI, is a program that accepts text input to execute operating system functions. If you're using MacOS or Linux, you might already be familiar with a CLI (or Terminal), as it's been built-in to your operating system for decades. If you're using Windows, you may recognize Command or Powershell, but chances are you never used a CLI.
But no worries! Regardless of the dev environment chosen, the next pages will guide you how to open or install the appropriate CLI.
Git is one of the most popular version control systems, originally created for aiding development of the Linux kernel. To start working with UserFrosting, you won't need to use git right away. However, Git is an important part of UserFrosting for many reasons:
Git is not the same as GitHub! GitHub is a "social coding" company, while git is the open-source software around which GitHub was built. Many open source projects choose to use GitHub to host their git repositories, because GitHub offers free hosting for public repositories. However, you should be aware that there are other companies that also offer free git hosting, such as Atlassian (Bitbucket). Both also offer free private repositories. You can also set up your own server to host repositories. Third-party packages such as Gitlab also have GitHub/Bitbucket-like features such as issue tracking, code review, etc.
Up until March of 2012, PHP didn't really have a good project-level package manager. There was PEAR, but it failed to keep up with the evolution of the PHP community. In March of 2012, on the heels of the PHP Standard Recommendations (PSR) project, Composer was released and a new era of PHP began.
If you've been out of the PHP world for a while, you might have missed this critical shift. Over the past few years, Composer has risen to become the de facto package manager for PHP, with Packagist as its main public package repository. This means that the best way to incorporate third-party code (which you definitely should do) is by installing and using Composer - at the very least, in your development environment.
Composer also handles autoloading, which means that the days of needing long blocks of include
or require
statements in your code are over. It fully implements the PSR-4 standard for autoloading, which further helps the PHP community develop a consistent approach to releasing and consuming packages.
Node.js is an an extremely popular JavaScript runtime built on Chrome's V8 JavaScript Engine. In recent years it has become extremely popular for creating multiplatform applications, and for its role in providing a means to run platform independent build tools like gulp
and grunt
(to name just a few). Node.js also includes npm
(Node.js Package Manager).
Although UserFrosting does not run on Node.js, it does use several Node-based tools to fetch client-side Javascript and CSS dependencies, as well as perform critical build tasks.
npm stands for Node Package Manager. npm is to Node.js what Composer is to PHP. It is used to grab the various Node packages that are required by UserFrosting's installation and build tools.
The final tool you'll need to develop your own application or website using UserFrosting is a good Code Editor, or IDE. While it's still possible to write your code in Notepad, a code editor will provide advanced features to make it easier for you to write, understand, and debug your code.
The most popular editor to write PHP in today, and the one recommended by the UserFrosting team, is Visual Studio Code, or VSCode. VSCode was first released by Microsoft in 2015 and is partly Open Source. It's available for Windows, Linux, MacOS, and even the web! It supports pretty much every language you'll need, and its extension system is really awesome, backed by a very large marketplace. Be sure to check out PHP Intelephense!
Other popular IDE includes :
In the past, PhpMyAdmin was the de facto tool used to view and edit databases content. It still "does the job", but can be hard to setup (unless you do through Docker!) and proper GUI desktop apps are much nicer to use for most database stuff. Desktop app can be useful to experiment with queries in a nice editor, can display your tables structure visually, allow you to save your query scripts to files, etc.
Popular database GUI app includes :
These tools are optional, but can be useful for any serious developer: