Setup Dev Env - xfrocks/DevHelper GitHub Wiki
There are two ways to setup development environment that is compatible with DevHelper:
- Symlinks: easier to use but dev env must be *NIX
- Docker: flexible and works everywhere with
docker
installed
Assumptions
/path/to/DevHelper
path to this repo.
/path/to/addons
path to directory that contains all add-ons under development.
/path/to/xenforo
path to XenForo source (containing admin.php
, js
, library
).
addOnId
is your add-on ID.
Each add-on must be in its own directory (named as the add-on ID) and have this structure:
/path/to/addons/addOnId # git repository root
|
|--js
| |
| └--addOnId
| └-- full
| |-- # javascript files (will be minified)
| └-- ...
|
|--library
| └--addOnId
| |-- # PHP scripts
| └-- ...
|
└--styles
└--default
└--addOnId
|-- # all other assets
└-- ...
Using symlinks
Setup XenForo
These steps are to be done after installing XenForo normally on your favourite web server.
Copy js/library files:
cp -R /path/to/DevHelper/js/DevHelper /path/to/xenforo/js/DevHelper
cp -R /path/to/DevHelper/library/DevHelper /path/to/xenforo/library/DevHelper
Open /path/to/xenforo/index.php
and /path/to/xenforo/admin.php
, look for these lines:
require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
Replace them with:
require($fileDir . '/library/XenForo/Autoloader.php');
require($fileDir . '/library/DevHelper/Autoloader.php');
DevHelper_Autoloader::getDevHelperInstance()->setupAutoloader($fileDir . '/library');
Setup add-on
Change directory to /path/to/addons
and execute xf-new-addon addOnId /path/to/xenforo
. For new add-on, this command with create the directory structure as described above 👆. Then it will create symlinks for all inner addOnId
directories:
/path/to/addons/addOnId/js/addOnId
->/path/to/xenforo/js/addOnId
/path/to/addons/addOnId/library/addOnId
->/path/to/xenforo/library/addOnId
/path/to/addons/addOnId/styles/default/addOnId
->/path/to/xenforo/style/defaults/addOnId
Now you can start working on your add-on, any changes you made to the add-on files should be trackable with git
.
Using Docker
Setup XenForo
Change directory to /path/to/DevHelper
and edit docker-compose.yml
, look for these lines:
#volumes:
#- /path/to/xenforo:/var/www/html/xenforo:rw
#- /path/to/addons:/var/www/html/addons:rw
#- .:/var/www/html/:rw
Uncomment them all and update the paths to match your development environment, something like these:
volumes:
- ~/Downloads/xenforo_1.5.9/upload:/var/www/html/xenforo:rw
- ~/Dropbox/XenForo/AddOns:/var/www/html/addons:rw
- .:/var/www/html/:rw
Afterward, execute docker-compose up
and go to http://xenforo.local.xfrocks.com/install to install XenForo. The default MySQL username, password and database are all xenforo
.
Other usage:
Setup add-on
For new add-on, just create a new directory inside /path/to/addons
and start working.