Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
b7c8af4
feat: adjusts redirect method
fernandoval May 7, 2025
f1052ac
fix: adjustments in readme and gitignore
fernandoval May 7, 2025
b571475
feat: enhancements in Controller and helper
fernandoval May 7, 2025
1376423
feat: adjustments in exception class
fernandoval May 7, 2025
156f536
fix: resolves debug template errors
fernandoval May 7, 2025
85d4313
feat: adds ErrorsList class and templates
fernandoval May 7, 2025
38209b5
feat: adjusts Kernel to use new ErrorsList and removes deprecated met…
fernandoval May 7, 2025
6586488
feat: deprecate errors list methods from Errors class
fernandoval May 7, 2025
2f80cfc
feat: removes deprecated template file
fernandoval May 7, 2025
4cc54a4
fix: adjusts legacy ISO-8859-1 script
fernandoval May 7, 2025
85643a4
feat: updates Mediator and removes deprecated methods
fernandoval May 7, 2025
542cbcf
feat: adds PHP 8.4 test
fernandoval May 7, 2025
3a4698d
feat: removes deprecated methods from DIContainer
fernandoval May 7, 2025
366d579
feat: removes sysconf dependency
fernandoval May 8, 2025
f3010ba
feat: delete deprecated sysconf.php file
fernandoval May 8, 2025
fa981e6
feat: adds php extension to consts file
fernandoval May 8, 2025
be3ee52
feat: adds http error classes
fernandoval May 12, 2025
5a4ed17
feat: adds new mailer class
fernandoval May 14, 2025
097354a
feat: deprecates old Mail class
fernandoval May 14, 2025
0cb2db1
feat: upgrades PHPMailer and SendGrid
fernandoval May 14, 2025
d6d71f4
feat: adds PHP 8.4 to GitHub workflow
fernandoval May 14, 2025
9da5d9f
fix: adjusts PER styling
fernandoval May 14, 2025
cd498e9
feat: enhances DIContainer class
fernandoval May 19, 2025
9bee9ec
feat: adjusts .env example
fernandoval May 19, 2025
61f0862
feat: testing new GitHub actions with MySQL
fernandoval May 19, 2025
1c37ad6
fix: adjusts GitHub actions yml
fernandoval May 19, 2025
32b123c
feat: adds new database connector
fernandoval May 19, 2025
4209ba8
fix: adjusts env pass in GitHub actions yml
fernandoval May 19, 2025
c91d46d
feat: adjusts mailer class
fernandoval May 21, 2025
4e34552
feat: old Mail class now uses Mailer class
fernandoval May 21, 2025
8d6be70
feat: deletes old mail drivers
fernandoval May 21, 2025
6f9050f
feat: adjusts mail config
fernandoval May 21, 2025
c36ab1f
fix: adjusts the use of body and alternative body
fernandoval May 21, 2025
177a484
fix: adjustments in mailer
fernandoval May 21, 2025
90de644
feat: adjusts PHP 8.2 compatibility
fernandoval Feb 25, 2026
6c2d581
feat: deprecates db pool conection type
fernandoval Feb 25, 2026
abf8130
feat: modernizes DB class
fernandoval Feb 26, 2026
c257dc4
fix: adjusts system error template
fernandoval Feb 26, 2026
18d0695
feat: adds array_dotted_set function
fernandoval Feb 26, 2026
e5b63ea
feat: deprecated UUID class
fernandoval Feb 26, 2026
5f8462f
feat: updates Strings test
fernandoval Feb 26, 2026
61721d1
feat: resolves PHP 8.5 compatibility
fernandoval Feb 26, 2026
be372b4
feat: updates Composer and adjusts identation
fernandoval Mar 25, 2026
d2ec7d5
feat: adds a dev test suite helper
fernandoval Mar 25, 2026
824183f
feat: migrates phpcs from v3 to v4
fernandoval Apr 22, 2026
f674fa8
feat: adjusts Docker test to run phpcs too
fernandoval Apr 22, 2026
d97e5b0
feat: adjusts GitHub Action to run phpcs too
fernandoval Apr 22, 2026
9e28a3b
feat: adjusts ignore annotations for phpcs v4
fernandoval Apr 26, 2026
19c895e
feat: adds fallbackToIndex configuration
fernandoval Apr 26, 2026
b510538
feat: adjusts ignore annotations for phpcs v4
fernandoval Apr 26, 2026
e4b15c7
feat: removes ircmaxell/password-compat component dependency
fernandoval Apr 26, 2026
f5170d7
fix: adjusts PHP 8.5 compatibility
fernandoval Jul 9, 2026
d6bcdf5
doc: update documentation
fernandoval Jul 9, 2026
3db685c
raw: update composer
fernandoval Jul 9, 2026
8020ab0
raw: update Twig template dependency
fernandoval Jul 9, 2026
2d497ef
raw: update Springy version
fernandoval Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ TIMEZONE="America/Sao_Paulo"
#
# Host, database name, user and password

DB_HOST="localhost"
DB_HOST="127.0.0.1"
DB_NAME="springy"
DB_USER="root"
DB_PASS=""
DB_PASS="root"
72 changes: 62 additions & 10 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,74 @@ permissions:

jobs:
tests:
runs-on: ubuntu-latest
name: php-${{ matrix.php-version }}-mysql-${{ matrix.mysql-version }}

env:
extensions: curl, gmp, json, libxml, mbstring, mcrypt, pdo, pdo_mysql, zip
key: cache-v1

runs-on: ${{ matrix.os }}

strategy:
fail-fast: true
matrix:
php: ['8.1', '8.2', '8.3']
os:
- ubuntu-latest
php-version: ['8.2', '8.3', '8.4', '8.5']
mysql-version:
- '8.0'

name: PHP ${{ matrix.php }}
services:
mysql:
image: mysql:${{ matrix.mysql-version }}
env:
MYSQL_DATABASE: springy
MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup PHP
- name: Setup cache environment
id: cache-env
uses: shivammathur/cache-extensions@v1
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ env.extensions }}
key: ${{ env.key }}

- name: Cache extensions
uses: actions/cache@v4
with:
path: ${{ steps.cache-env.outputs.dir }}
key: ${{ steps.cache-env.outputs.key }}
restore-keys: ${{ steps.cache-env.outputs.key }}

- name: Install PHP with extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: curl, libxml, mbstring, mcrypt
php-version: ${{ matrix.php-version }}
extensions: ${{ env.extensions }}
ini-values: date.timezone='UTC'
coverage: none

# - name: Validate composer.json and composer.lock
# run: composer validate --strict
- name: Determine composer cache directory
if: matrix.os == 'ubuntu-latest'
run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV

- name: Cache dependencies installed with composer
uses: actions/cache@v4
with:
path: ${{ env.COMPOSER_CACHE_DIR }}
key: php-${{ matrix.php-version }}-mysql-${{ matrix.mysql-version }}-${{ hashFiles('**/composer.json') }}
restore-keys: |
php-${{ matrix.php-version }}-composer-${{ matrix.mysql-version }}-

- name: Validate composer.json and composer.lock
run: composer validate

# - name: Cache Composer packages
# id: composer-cache
Expand All @@ -47,10 +93,16 @@ jobs:
# ${{ runner.os }}-php-

- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-progress --no-suggest
run: composer install --prefer-dist --no-interaction --no-progress --optimize-autoloader

- name: Copy environment file
run: cp .env.example .env

- name: Run test suite
run: vendor/bin/phpunit
env:
DB_HOST: "127.0.0.1"
DB_NAME: springy
DB_USER: root
DB_PASS: root
MYSQL: ${{ matrix.mysql-version }}
run: composer run test
9 changes: 5 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.env
.phpunit.result.cache
/.env
/.phpunit.result.cache
/components/*
/components.lock
/node_modules/*
/phpcs.log
/phpmd.html
/components/*
/node_modules/*
/TODO
41 changes: 23 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,51 @@

A micro framework for smart PHP developers.

> **WARNING!**
> **WARNING!**
>
> This project will be deprecated soon.
> This project will be deprecated soon.
>
> The new major release 5 is under development.
> The new major release 5 is under development.
>
> It will be not compatible with version 4, but comes with several new features and enhancements.
> It may be not compatible with version 4, but comes with several new features
> and enhancements.
>
> You can follow new project at https://github.com/springy-framework
> You can follow new project at https://github.com/springy-framework

## What is this

Springy is a micro [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) framework for coders who work with the [PHP](http://www.php.net) script language to develop web applications.
Springy is a micro
[MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)
framework for coders who work with the [PHP](http://www.php.net) script language
to develop web applications.

It was created based upon the KISS principle in which the simplicity is the base to good things.
It was created based upon the KISS principle in which the simplicity is the base
to good things.

## Requirements

* PHP 8.1+
* [Composer](https://getcomposer.org/) Dependency Manager for PHP
- PHP 8.2+
- [Composer](https://getcomposer.org/) Dependency Manager for PHP

## Language dependencies

* [Multibyte String](http://php.net/manual/en/intro.mbstring.php) library
* [Mcrypt](http://php.net/manual/en/intro.mcrypt.php) library
- [Multibyte String](http://php.net/manual/en/intro.mbstring.php) library
- [Mcrypt](http://php.net/manual/en/intro.mcrypt.php) library

## How do I start?

Read the documentation:

* [English](/documentation/en/README.md)
* [Portuguese](/documentation/pt/README.md)
- [English](/documentation/en/README.md)
- [Portuguese](/documentation/pt/README.md)

## Contributing

1. Fork it!
2. Create your feature branch: `git checkout -b my-branch`
3. Commit your changes: `git commit -m 'Description of your feature'`
4. Push to the branch: `git push origin my-feature`
5. Submit a pull request.
1. Fork it!
2. Create your feature branch: `git checkout -b my-branch`
3. Commit your changes: `git commit -m 'Description of your feature'`
4. Push to the branch: `git push origin my-feature`
5. Submit a pull request.

## License

Expand Down
11 changes: 3 additions & 8 deletions cmd
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,12 @@
* @copyright 2007 Fernando Val
* @author Fernando Val <fernando.val@gmail.com>
*
* @version 3.0.1
*
* @codingStandardsIgnoreFile
* @version 3.1.0
*/

define('SPRINGY_START', microtime(true));

require __DIR__ . '/consts';
require __DIR__ . '/consts.php';
// Loads the Composer autoload
require __DIR__ . '/vendor/autoload.php';

Expand All @@ -29,9 +27,6 @@ if ($argc < 2) {
exit(999);
}

// Load framework configuration
$sysconf = file_exists(web_root() . '/sysconf.php') ? require_once web_root() . '/sysconf.php' : [];

// Define error handlers
error_reporting(E_ALL);
set_exception_handler('springyExceptionHandler');
Expand Down Expand Up @@ -70,4 +65,4 @@ while (++$arg < $argc) {
}

ob_start();
Springy\Kernel::run($sysconf);
Springy\Kernel::run();
24 changes: 13 additions & 11 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,22 +33,25 @@
}
},
"require-dev": {
"squizlabs/php_codesniffer": "^3.5",
"phpmd/phpmd": "@stable",
"phpunit/phpunit": "~10.5"
"phpunit/phpunit": "^10.5",
"squizlabs/php_codesniffer": "^4.0"
},
"require": {
"php": ">=8.1",
"ext-ctype": "*",
"ext-gmp": "*",
"ext-hash": "*",
"ext-intl": "*",
"ext-mbstring": "*",
"ext-session": "*",

"smarty/smarty": "^5.4",
"twig/twig": "^2.15",
"ircmaxell/password-compat": "^1.0",
"matthiasmullie/minify": "^1.3",
"sendgrid/sendgrid": "^7.8",
"phpmailer/phpmailer": "^6.0",
"vlucas/phpdotenv": "^5.6",

"components/jquery": "~3.1"
"phpmailer/phpmailer": "^6.10",
"sendgrid/sendgrid": "^8.1",
"smarty/smarty": "^5.8",
"twig/twig": "^3.28",
"vlucas/phpdotenv": "^5.6"
},
"autoload": {
"files": ["springy/Core/helpers.php"],
Expand All @@ -65,7 +68,6 @@
"phpmd" : "phpmd . html codesize.xml > phpmd.html",
"test": [
"@phpcs",
"@phpmd",
"@phpunit"
],
"read-me": "Adds @components post-install-cmd and post-update-cmd if needed"
Expand Down
Loading
Loading