SDSM:Languages and Frameworks
This document consists of multiple parts; for a directory to all of the
parts, see SDSM:Index.
Description
This part of the SDS Modernization (SDSM) document provides information about programming languages and frameworks used by SDS.
Programming Languages
SDS is a web application written in 3 main programming languages:
- PHP (https://www.php.net)
- JavaScript
- MySQL DBMS (https://www.mysql.com) dialect of SQL
SDS Laravel PHP Library Dependencies
The Composer config file composer.json
of SDS Laravel
explicitly declares that it requires these 19 PHP library dependencies:
- barryvdh/laravel-debugbar (^3.7, of 2022.07.11; latest is 3.13.5, of 2024.04.12)
- directorytree/ldaprecord-laravel (^2.7.3, of 2023.02.09; latest is 3.3.3, of 2024.06.17)
- etern8ty/beanstream (dev-master, is custom fork)
- fakerphp/faker (^1.23.1, is latest, of 2024.01.02)
- fideloper/proxy (^4.4.2, is latest, of 2022.02.09; laravel/framework has built-in replacement)
- goldspecdigital/laravel-eloquent-uuid (^8.0.1, of 2020.12.23; latest is 10, of 2023.02.23; laravel/framework 9.3+ has built-in replacement)
- guzzlehttp/guzzle (^7.8.1, is latest, of 2023.12.03)
- intervention/image (^2.7.2, of 2022.05.21; replaced by intervention/image-laravel, 1.3, of 2024.06.15)
- juliomotol/laravel-auth-timeout (^3.1.1, of 2022.06.03; latest is 4.1, of 2024.04.01)
- lab404/laravel-impersonate (^1.7.5, is latest, of 2024.03.11)
- laravel/framework (^8.83.27, of 2022.12.08; latest PHP 8.1-compatible is 10.48.15, of 2024.07.02; latest is 11.14, of 2024.07.02)
- laravel/helpers (^1.7, is latest, of 2023.11.30; laravel/framework has built-in replacement)
- laravel/tinker (^2.9, is latest, of 2024.01.04)
- laravel/ui (^3.4.6, of 2022.05.20; latest is 4.5.2, of 2024.05.08; declares itself legacy and recommends using Laravel Breeze or Laravel Jetstream instead)
- mockery/mockery (^1.6.12, of 2024.05.16)
- nunomaduro/collision (^5.11, of 2022.01.10; latest PHP 8.1-compatible is 7.10, of 2023.10.11; latest is 8.1.1, of 2024.03.06)
- phpunit/phpunit (^10.5.25, of 2024.07.03; latest is 11.2.6, of 2024.07.03)
- spatie/laravel-ignition (^1.7, of 2024.06.13; latest is 2.8, of 2024.06.12)
- staudenmeir/eloquent-has-many-deep (^1.14.4, of 2021.12.07; latest PHP 8.1-compatible is 1.19.4, of 2024.05.25; latest is 1.20.1, of 2024.05.25)
When Composer evaluates its config file composer.json
of
SDS Laravel, its declared required PHP library dependencies are
resolved to these 117, which are actually installed:
- barryvdh/laravel-debugbar (v3.7.0)
- brick/math (0.12.1)
- carbonphp/carbon-doctrine-types (3.2.0)
- dflydev/dot-access-data (v3.0.2)
- directorytree/ldaprecord (v2.20.5)
- directorytree/ldaprecord-laravel (v2.7.3)
- doctrine/inflector (2.0.10)
- doctrine/lexer (1.2.3)
- dragonmantank/cron-expression (v3.3.3)
- egulias/email-validator (2.1.25)
- etern8ty/beanstream (dev-master 297b986)
- facade/ignition-contracts (1.0.2)
- fakerphp/faker (v1.23.1)
- fideloper/proxy (4.4.2)
- filp/whoops (2.15.4)
- goldspecdigital/laravel-eloquent-uuid (v8.0.1)
- graham-campbell/result-type (v1.1.2)
- guzzlehttp/guzzle (7.8.1)
- guzzlehttp/promises (2.0.2)
- guzzlehttp/psr7 (2.6.2)
- hamcrest/hamcrest-php (v2.0.1)
- intervention/image (2.7.2)
- juliomotol/laravel-auth-timeout (v3.1.1)
- lab404/laravel-impersonate (1.7.5)
- laravel/framework (v8.83.27)
- laravel/helpers (v1.7.0)
- laravel/serializable-closure (v1.3.3)
- laravel/tinker (v2.9.0)
- laravel/ui (v3.4.6)
- league/commonmark (2.4.2)
- league/config (v1.2.0)
- league/flysystem (1.1.10)
- league/mime-type-detection (1.15.0)
- maximebf/debugbar (v1.22.3)
- mockery/mockery (1.6.12)
- monolog/monolog (2.9.3)
- myclabs/deep-copy (1.12.0)
- nesbot/carbon (2.72.5)
- nette/schema (v1.3.0)
- nette/utils (v4.0.4)
- nikic/php-parser (v5.1.0)
- nunomaduro/collision (v5.11.0)
- opis/closure (3.6.3)
- phar-io/manifest (2.0.4)
- phar-io/version (3.2.1)
- phpoption/phpoption (1.9.2)
- phpunit/php-code-coverage (10.1.15)
- phpunit/php-file-iterator (4.1.0)
- phpunit/php-invoker (4.0.0)
- phpunit/php-text-template (3.0.1)
- phpunit/php-timer (6.0.0)
- phpunit/phpunit (10.5.25)
- psr/clock (1.0.0)
- psr/container (1.1.2)
- psr/event-dispatcher (1.0.0)
- psr/http-client (1.0.3)
- psr/http-factory (1.1.0)
- psr/http-message (2.0)
- psr/log (2.0.0)
- psr/simple-cache (1.0.1)
- psy/psysh (v0.12.4)
- ralouphie/getallheaders (3.0.3)
- ramsey/collection (2.0.0)
- ramsey/uuid (4.7.6)
- sebastian/cli-parser (2.0.1)
- sebastian/code-unit (2.0.0)
- sebastian/code-unit-reverse-lookup (3.0.0)
- sebastian/comparator (5.0.1)
- sebastian/complexity (3.2.0)
- sebastian/diff (5.1.1)
- sebastian/environment (6.1.0)
- sebastian/exporter (5.1.2)
- sebastian/global-state (6.0.2)
- sebastian/lines-of-code (2.0.2)
- sebastian/object-enumerator (5.0.0)
- sebastian/object-reflector (3.0.0)
- sebastian/recursion-context (5.0.0)
- sebastian/type (4.0.0)
- sebastian/version (4.0.1)
- spatie/backtrace (1.6.1)
- spatie/flare-client-php (1.7.0)
- spatie/ignition (1.14.2)
- spatie/laravel-ignition (1.7.0)
- staudenmeir/eloquent-has-many-deep (v1.14.4)
- swiftmailer/swiftmailer (v6.3.0)
- symfony/console (v5.4.41)
- symfony/css-selector (v6.4.8)
- symfony/deprecation-contracts (v3.5.0)
- symfony/error-handler (v5.4.41)
- symfony/event-dispatcher (v6.4.8)
- symfony/event-dispatcher-contracts (v3.5.0)
- symfony/finder (v5.4.40)
- symfony/http-foundation (v5.4.40)
- symfony/http-kernel (v5.4.41)
- symfony/mime (v5.4.41)
- symfony/polyfill-ctype (v1.30.0)
- symfony/polyfill-iconv (v1.30.0)
- symfony/polyfill-intl-grapheme (v1.30.0)
- symfony/polyfill-intl-idn (v1.30.0)
- symfony/polyfill-intl-normalizer (v1.30.0)
- symfony/polyfill-mbstring (v1.30.0)
- symfony/polyfill-php72 (v1.30.0)
- symfony/polyfill-php73 (v1.30.0)
- symfony/polyfill-php80 (v1.30.0)
- symfony/process (v5.4.40)
- symfony/routing (v5.4.40)
- symfony/service-contracts (v3.5.0)
- symfony/string (v6.4.9)
- symfony/translation (v6.4.8)
- symfony/translation-contracts (v3.5.0)
- symfony/var-dumper (v5.4.40)
- theseer/tokenizer (1.2.3)
- tightenco/collect (v9.52.7)
- tijsverkoyen/css-to-inline-styles (v2.2.7)
- vlucas/phpdotenv (v5.6.0)
- voku/portable-ascii (1.6.1)
- webmozart/assert (1.11.0)
The PHP source code files of SDS Laravel contain direct references
to a variety of third-party PHP classes, most instances of which are
parts of the Laravel framework, and some that aren't. Often their
fully-qualified names only appear on the form of use
statements but other times those names don't appear in
use
statements and in the main body of PHP code instead.
Directly used by name in about 800 app PHP files:
- Illuminate\*
- Auth aka Illuminate\Support\Facades\Auth
- DB aka Illuminate\Support\Facades\DB
- Mail aka Illuminate\Support\Facades\Mail
- Redirect aka Illuminate\Support\Facades\Redirect
- URL aka Illuminate\Support\Facades\URL
Directly used by name in app/Models/File.php and app/Http/Controllers/Admin/Migration/ImportPhotosController.php only:
- Image aka Intervention\Image\ImageServiceProvider
Directly used by name in about 70 app PHP classes:
- Carbon\Carbon
- Carbon\Exceptions\InvalidFormatException
Directly used by name in 10 app PHP classes:
- LdapRecord\*
Directly used by name in 9 app PHP model classes:
- GoldSpecDigital\LaravelEloquentUUID\Database\Eloquent\Uuid
Directly used by name in 5 app PHP classes related to Blackbaud or Bambora:
- GuzzleHttp\Client
- GuzzleHttp\Exception\ClientException
- GuzzleHttp\Exception\GuzzleException
Directly used by name in app/Models/Finance/Bambora.php or app/Http/Controllers/Api/UserProfileController.php only:
- Beanstream\ApiException
- Beanstream\Exception
- Beanstream\Gateway
Directly used by name in 11 php files mostly database/factories/*.php:
- Faker\Generator
Directly used by name in app/Models/User.php only:
- Lab404\Impersonate\*
Directly used by name in app/Providers/AppServiceProvider.php only:
- Dotenv\Dotenv
Directly used by name in app/Models/Pivot/FormCampaignPerson.php only:
- Staudenmeir\EloquentHasManyDeep\HasRelationships
Directly used by name in app/Http/Middleware/TrustProxies.php only:
- Fideloper\Proxy\TrustProxies
Directly used by name in app/Http/Middleware/AuthTimeoutMiddleware.php and app/Http/Kernel.php only:
- JulioMotol\AuthTimeout\Middleware\AuthTimeoutMiddleware
Directly used by name in app/Exceptions/Handler.php only:
- Symfony\Component\HttpFoundation\Response
Directly used by name in config/logging.php only:
- Monolog\Handler\*
Directly used by name in tests/Unit/ExampleTest.php only:
- PHPUnit\Framework\TestCase
Directly referenced by name COMMENTED-OUT in app/Http/Kernel.php only:
- Fruitcake\Cors\HandleCors
SDS Laravel JavaScript Library Dependencies
The NPM config file package.json
of SDS Laravel explicitly
declares that it requires these 17 JavaScript library dependencies:
- @formkit/pro (^0.119.14, of 2024-02-05; latest is 0.126.13, of 2024-07-11)
- @formkit/themes (^1.6.5, is latest, of 2024-05-28)
- @formkit/vue (^1.6.5, is latest, of 2024-05-28)
- @fortawesome/fontawesome-free (^6.6, is latest, of 2024-07-16)
- axios (^1.7.2, is latest, of 2024.05.21)
- bootstrap (^4.6.2, of 2022.07.19; latest is 5.3.3, of 2024.02.20)
- css-loader (^7.1.2, is latest, of 2024-05-22)
- jquery (^3.7.1, is latest, of 2023.08.28; jquery 4 is in beta-2 as of 2024.07.17)
- laravel-mix (^6.0.49, is latest, of 2022.06.09)
- moment (^2.30.1, is latest, of 2023.12.27)
- popper.js (^1.16.1, is latest, of 2020.01.22; replaced by @popperjs/core, 2.11.8, of 2023.05.26; replaced by @floating-ui/dom, 1.6.5, of 2024.05.05)
- postcss (^8.4.40, is latest, of 2024-07-24)
- resolve-url-loader (^5, is latest, of 2022.01.17; added automatically when using laravel-mix 6)
- sass (^1.77.8, is latest, of 2024-07-11; added automatically when using laravel-mix 6)
- sass-loader (^14.2.1, of 2024.04.16; latest is 5, 2024-07-23; added automatically when using laravel-mix 6)
- vue (^3.4.34, is latest, of 2024-07-24)
- vue-loader (^17.4.2, is latest, of 2023-12-30)
When NPM evaluates its config file package.json
of
SDS Laravel, its declared required JavaScript library dependencies are
resolved to 799 packages which are actually installed.
The JavaScript source code files of SDS Laravel contain direct references to a variety of third-party JavaScript libraries.
Source file package.json
directly invokes these in "scripts":
- laravel-mix (direct package.json dep used for primary build process)
These libraries in package.json
are automatically added to it
if missing when executing laravel-mix
for the build process
(by way of npm run prod
or npm run dev
);
they are not named by source files.
- resolve-url-loader (direct package.json dep)
- sass (direct package.json dep; also indirect via sass-loader)
- sass-loader (direct package.json dep)
Source file webpack.mix.js
explicitly "require" or "import" these:
- laravel-mix (direct package.json dep)
- (resources/js/app.js)
- (resources/sass/app.scss)
Source file resources/js/bootstrap.js
explicitly "require" or "import" these:
- axios (direct package.json dep)
- bootstrap (direct package.json dep)
- jquery (direct package.json dep; also indirect via multiple other libraries)
Source file resources/js/app.js
explicitly "require" or "import" these:
- @formkit/pro (direct package.json dep)
- @formkit/themes (direct package.json dep)
- @formkit/vue (direct package.json dep)
- @fortawesome/fontawesome-free (direct package.json dep)
- jquery (direct package.json dep; also indirect via bootstrap 4)
- vue (direct package.json dep; also indirect via @formkit/vue)
- (resources/js/bootstrap.js)
Source file resources/sass/app.scss
explicitly "require" or "import" these:
- bootstrap (direct package.json dep)
- https://fonts.googleapis.com/css?family=Nunito
- (variables)
SDS Gavintech PHP Library Dependencies
The Composer config file composer.json
of SDS Gavintech
explicitly declares that it requires these 2 PHP library dependencies:
- facade/flare-client-php (^1.10)
- spatie/ignition (^1.4)
When Composer evaluates its config file composer.json
of
SDS Gavintech, its declared required PHP library dependencies are
resolved to these 34, which are actually installed:
- carbonphp/carbon-doctrine-types (3.2.0)
- doctrine/inflector (2.0.10)
- facade/flare-client-php (1.10.0)
- facade/ignition-contracts (1.0.2)
- illuminate/collections (v8.83.27)
- illuminate/contracts (v8.83.27)
- illuminate/macroable (v8.83.27)
- illuminate/pipeline (v8.83.27)
- illuminate/support (v8.83.27)
- nesbot/carbon (2.72.3)
- psr/clock (1.0.0)
- psr/container (1.1.2)
- psr/simple-cache (1.0.1)
- spatie/backtrace (1.6.1)
- spatie/flare-client-php (1.6.0)
- spatie/ignition (1.14.1)
- symfony/console (v6.4.7)
- symfony/deprecation-contracts (v3.5.0)
- symfony/http-foundation (v5.4.39)
- symfony/mime (v5.4.39)
- symfony/polyfill-ctype (v1.29.0)
- symfony/polyfill-intl-grapheme (v1.29.0)
- symfony/polyfill-intl-idn (v1.29.0)
- symfony/polyfill-intl-normalizer (v1.29.0)
- symfony/polyfill-mbstring (v1.29.0)
- symfony/polyfill-php72 (v1.29.0)
- symfony/polyfill-php80 (v1.29.0)
- symfony/process (v6.4.7)
- symfony/service-contracts (v3.5.0)
- symfony/string (v6.4.7)
- symfony/translation (v6.4.7)
- symfony/translation-contracts (v3.5.0)
- symfony/var-dumper (v5.4.39)
- voku/portable-ascii (1.6.1)
SDS Gavintech JavaScript Library Dependencies
The NPM config file package.json
of SDS Gavintech explicitly
declares that it requires these 48 JavaScript library dependencies:
- @babel/core (^7.10.2)
- @babel/polyfill (^7.10.1)
- @babel/preset-env (^7.10.2)
- @babel/runtime (^7.10.2)
- @formkit/pro (^0.119.2)
- @formkit/themes (^1.4.0)
- @formkit/vue (^1.4.0)
- @vue/cli (^5.0.8)
- @vue/compiler-sfc (^3.2.47)
- @vuepic/vue-datepicker (^5.4.0)
- axios (^1.3.4)
- babel-loader (^9.1.2)
- bootstrap (^4.5.0)
- bootstrap-select (^1.13.17)
- bootstrap-vue (^2.15.0)
- chart.js (4.2.1)
- chartjs-adapter-moment (^1.0.1)
- coffeescript (^2.5.1)
- core-js (^3.29.1)
- cross-env (^7.0.2)
- dotenv-safe (^8.2.0)
- fs (0.0.1-security)
- jquery (^3.5.1)
- laravel-mix (^6.0.49)
- lodash (^4.17.15)
- moment (^2.26.0)
- node-sass (^8.0.0)
- pc-bootstrap4-datetimepicker (^4.17.51)
- pinia (^2.1.6)
- popper.js (^1.16.1)
- primeflex (^3.3.0)
- primeicons (^6.0.1)
- primevue (^3.27.0)
- qs (^6.9.4)
- resolve-url-loader (^5.0.0)
- sass (^1.26.8)
- sass-loader (^13.2.1)
- tempusdominus-bootstrap-4 (^5.1.2)
- tempusdominus-core (^5.0.3)
- vee-validate (^4.8.3)
- vue (^3.2.47)
- vue-chartjs (^5.2.0)
- vue-loader (^17.0.1)
- vue-numeric (^2.3.0)
- vue-pagination-3 (^2.0.0-beta01)
- vue-template-compiler (^2.6.11)
- webpack (^5.80.0)
- webpack-cli (^5.0.1)
When NPM evaluates its config file package.json
of
SDS Gavintech, its declared required JavaScript library dependencies are
resolved to approximately 1559 which are actually installed.
That includes these versions of the explicitly declared 48:
- @babel/core (^7.24.6)
- @babel/polyfill (^7.12.1)
- @babel/preset-env (^7.24.6)
- @babel/runtime (^7.24.6)
- @formkit/pro (^0.119.14)
- @formkit/themes (^1.6.3)
- @formkit/vue (^1.6.3)
- @vue/cli (^5.0.8)
- @vue/compiler-sfc (^3.4.27)
- @vuepic/vue-datepicker (^5.4.0)
- axios (^1.7.2)
- babel-loader (^9.1.3)
- bootstrap (^4.6.2)
- bootstrap-select (^1.13.18)
- bootstrap-vue (^2.23.1)
- chart.js (^4.2.1)
- chartjs-adapter-moment (^1.0.1)
- coffeescript (^2.7.0)
- core-js (^3.37.1)
- cross-env (^7.0.3)
- dotenv-safe (^8.2.0)
- fs (^0.0.1-security)
- jquery (^3.7.1)
- laravel-mix (^6.0.49)
- lodash (^4.17.21)
- moment (^2.30.1)
- node-sass (^8.0.0)
- pc-bootstrap4-datetimepicker (^4.17.51)
- pinia (^2.1.7)
- popper.js (^1.16.1)
- primeflex (^3.3.1)
- primeicons (^6.0.1)
- primevue (^3.52.0)
- qs (^6.12.1)
- resolve-url-loader (^5.0.0)
- sass (^1.77.2)
- sass-loader (^13.3.3)
- tempusdominus-bootstrap-4 (^5.39.2)
- tempusdominus-core (^5.19.3)
- vee-validate (^4.12.8)
- vue (^3.4.27)
- vue-chartjs (^5.3.1)
- vue-loader (^17.4.2)
- vue-numeric (^2.5.1)
- vue-pagination-3 (^2.0.0-beta01)
- vue-template-compiler (^2.7.16)
- webpack (^5.91.0)
- webpack-cli (^5.1.4)