Business Suite V9 is available Now See what's new
This is one of the most common questions we got asked from our customers.
For our applications, this is not a short one-word answer like Laravel or Codeigniter. So we thought it might be useful if we break down this.
We built a custom framework to support our specific needs. We optimize this custom framework to match the features and the performances.
But we didn't reinvent the wheel. We used several excellent, great libraries available on the Internet. Because we didn't use the specific framework, we don't need to depend on a library built for a particular framework.
We used several libraries from the Laravel and the Symfony framework.
So, let's breakdown what we used-
We could not find anything better than Laravel Eloquent ORM for our application. And we use that. To write a custom plugin, you can use the Eloquent ORM, which is autoloaded and shipped with our applications.
For the Documentation Check Laravel Database
illuminate/cache From the latest version of Laravel.
We used Laravel filesystem.
symfony/console
We customize the smarty template engine to support our specific needs. Tags are similar to Smarty.
Our routing system is entirely different from other frameworks. Most of the frameworks depend on the URL-Rewrite feature. But our application is highly portable. You can install it in a sub-folder or along with another application. You do not need to deal with htaccess or custom Nginx configuration. Only enable it when you need it. For our application routing, you do not need to define the routes.
Here is the sample composer.json file to understand dependencies for our applications-
{ "minimum-stability": "dev", "prefer-stable": true, "require" : { "php": "^7.3.0", "ext-curl": "*", "ext-json": "*", "ext-pdo": "*", "authorizenet/authorizenet": "~1.9.6", "dragonmantank/cron-expression": "^3.1", "erusev/parsedown": "^1.6", "ezyang/htmlpurifier": "^4.13", "filp/whoops": "^2.7", "fzaninotto/faker": "^1.9", "guzzlehttp/guzzle": "^6.2", "illuminate/cache": "^8.26", "illuminate/config": "^8.26", "illuminate/console": "^8.26", "illuminate/container": "^8.26", "illuminate/contracts": "^8.26", "illuminate/database": "~8.0", "illuminate/events": "^8.26", "illuminate/filesystem": "^8.26", "illuminate/http": "~8.0", "illuminate/support": "~8.0", "illuminate/translation": "^8.26", "illuminate/validation": "^8.26", "intervention/image": "^2.4", "jenssegers/date": "^4.0", "league/csv": "8.0", "mailgun/mailgun-php": "^2.5", "monolog/monolog": "^2.1", "mpdf/mpdf": "^8.0", "nesbot/carbon": "^2.29.1", "nexmo/client": "^1.2", "paypal/paypal-checkout-sdk": "^1.0", "phpoffice/phpspreadsheet": "^1.5", "rinvex/countries": "^6.1", "sparkpost/sparkpost": "^2.1", "stripe/stripe-php": "^7.76", "swiftmailer/swiftmailer": "^6.2", "symfony/console": "^5.2", "symfony/css-selector": "^5.0", "symfony/dom-crawler": "^5.0", "symfony/process": "^5.2", "symfony/var-dumper": "^5.1", "tightenco/collect": "^8.19", "twilio/sdk": "^6.16", "willdurand/email-reply-parser": "^2.8", "xemlock/htmlpurifier-html5": "^0.1.11", "zbateson/mail-mime-parser": "^1.1" } , "autoload": { "psr-0": {"": "system/autoload/"}, "psr-4": { "": "system/models/" } }, "config": { "preferred-install": "dist", "sort-packages": true, "optimize-autoloader": true } }