lan / ice-fork
Ice Open Source PHP Framework
Installs: 3 419
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 7
pkg:composer/lan/ice-fork
Requires
- php: 7.4.* || 8.0.* || 8.3.*
 - mrclay/minify: 3.0.*
 - phpmailer/phpmailer: ^6
 - phpoffice/phpspreadsheet: 4.1.*
 - phpoffice/phpword: 1.3.*
 - rybakit/msgpack: 0.8.*
 - spb-lan/ice-cli-fork: 0.0.8
 - spb-lan/ice-http-fork: 0.0.7
 - tarantool/client: 0.9.*
 - vlucas/phpdotenv: ^2.4.0 | ^5.4.1
 
Requires (Dev)
- ccampbell/chromephp: dev-master
 - codeception/codeception: ^5.2.1
 - lox/xhprof: dev-master
 - squizlabs/php_codesniffer: dev-master
 
- 1.30.15
 - 1.30.14
 - 1.30.13
 - 1.30.12
 - 1.30.11
 - 1.30.10
 - 1.30.9
 - 1.30.8
 - 1.30.7
 - 1.30.6
 - 1.30.5
 - 1.30.4
 - 1.30.3
 - 1.30.2
 - 1.30.1
 - 1.30.0
 - 1.29.x-dev
 - 1.29.48
 - 1.29.47
 - 1.29.46
 - 1.29.45
 - 1.29.44
 - 1.29.43
 - 1.29.42
 - 1.29.41
 - 1.29.40
 - 1.29.39
 - 1.29.38
 - 1.29.37
 - 1.29.36
 - 1.29.35
 - 1.29.34
 - 1.29.33
 - 1.29.32
 - 1.29.31
 - 1.29.30
 - 1.29.29
 - 1.29.28
 - 1.29.27
 - 1.29.26
 - 1.29.25
 - 1.29.24
 - 1.29.23
 - 1.29.22
 - 1.29.21
 - 1.29.20
 - 1.29.19
 - 1.29.18
 - 1.29.17
 - 1.29.16
 - 1.29.15
 - 1.29.14
 - 1.29.13
 - 1.29.12
 - 1.29.11
 - 1.29.10
 - 1.29.9
 - 1.29.8
 - 1.29.7
 - 1.29.6
 - 1.29.5
 - 1.29.4
 - 1.29.3
 - 1.29.2
 - 1.29.1
 - 1.29.0
 - 1.28.x-dev
 - 1.28.15
 - 1.28.14
 - 1.28.13
 - 1.28.12
 - 1.28.11
 - 1.28.10
 - 1.28.9
 - 1.28.8
 - 1.28.7
 - 1.28.6
 - 1.28.5
 - 1.28.4
 - 1.28.3
 - 1.28.2
 - 1.28.1
 - 1.28.0
 - 1.27.x-dev
 - 1.27.71
 - 1.27.70
 - 1.27.69
 - 1.27.68
 - 1.27.67
 - 1.27.66
 - 1.27.65
 - 1.27.64
 - 1.27.63
 - 1.27.62
 - 1.27.61
 - 1.27.60
 - 1.27.59
 - 1.27.58
 - 1.27.57
 - 1.27.56
 - 1.27.55
 - 1.27.54
 - 1.27.53
 - 1.27.52
 - 1.27.51
 - 1.27.50
 - 1.27.49
 - 1.27.48
 - 1.27.47
 - 1.27.46
 - 1.27.45
 - 1.27.44
 - 1.27.43
 - 1.27.42
 - 1.27.41
 - 1.27.40
 - 1.27.39
 - 1.27.38
 - 1.27.37
 - 1.27.36
 - 1.27.35
 - 1.27.34
 - 1.27.33
 - 1.27.32
 - 1.27.31
 - 1.27.30
 - 1.27.29
 - 1.27.28
 - 1.27.27
 - 1.27.26
 - 1.27.25
 - 1.27.24
 - 1.27.23
 - 1.26.x-dev
 - 1.26.22
 - 1.26.21
 - 1.26.20
 - 1.26.19
 - 1.26.18
 - 1.26.17
 - 1.26.16
 - 1.26.15
 - 1.26.14
 - 1.26.13
 - 1.26.12
 - 1.26.11
 - 1.26.9
 - 1.26.8
 - 1.26.7
 - 1.26.6
 - 1.26.5
 - 1.26.4
 - 1.26.3
 - 1.26.2
 - 1.26.1
 - 1.26.0
 - 1.25.x-dev
 - 1.25.44
 - 1.25.43
 - 1.25.42
 - 1.25.41
 - 1.25.40
 - 1.25.39
 - 1.25.38
 - 1.25.37
 - 1.25.36
 - 1.25.35
 - 1.25.34
 - 1.25.33
 - 1.25.32
 - 1.25.31
 - 1.25.30
 - 1.25.29
 - 1.25.28
 - 1.25.27
 - 1.25.26
 - 1.25.25
 - 1.25.24
 - 1.25.23
 - 1.25.22
 - 1.25.21
 - 1.25.20
 - 1.25.19
 - 1.25.18
 - 1.25.17
 - 1.25.16
 - 1.25.15
 - 1.25.14
 - 1.25.13
 - 1.25.12
 - 1.25.11
 - 1.25.10
 - 1.25.9
 - 1.25.8
 - 1.25.7
 - 1.25.6
 - 1.25.5
 - 1.25.4
 - 1.25.3
 - 1.25.2
 - 1.25.1
 - 1.25.0
 - 1.24.x-dev
 - 1.24.37
 - 1.24.36
 - 1.24.35
 - 1.24.34
 - 1.24.33
 - 1.24.32
 - 1.24.31
 - 1.24.30
 - 1.24.29
 - 1.24.28
 - 1.24.26
 - 1.24.25
 - 1.24.24
 - 1.24.23
 - 1.24.22
 - 1.24.21
 - 1.24.20
 - 1.24.19
 - 1.24.17
 - 1.24.16
 - 1.24.15
 - 1.24.14
 - 1.24.13
 - 1.24.12
 - 1.24.11
 - 1.24.10
 - 1.24.9
 - 1.24.8
 - 1.24.7
 - 1.24.6
 - 1.24.5
 - 1.24.4
 - 1.24.3
 - 1.24.2
 - 1.24.1
 - 1.24.0
 - 1.3.x-dev
 - 1.0.0
 - 0.5.31
 - 0.5.30
 - 0.5.29
 - 0.5.28
 - 0.5.27
 - 0.5.26
 - 0.5.25
 - 0.5.24
 - 0.5.23
 - 0.5.22
 - 0.5.21
 - 0.5.20
 - 0.5.19
 - 0.5.18
 - 0.5.17
 - 0.5.16
 - 0.5.15
 - 0.5.14
 - 0.5.13
 - 0.5.12
 - 0.5.11
 - 0.5.10
 - 0.5.9
 - 0.5.8
 - 0.5.7
 - 0.5.6
 - 0.5.5
 - 0.5.4
 - 0.5.3
 - 0.5.2
 - 0.5.0
 - 0.4.0
 - 0.3.0
 - 0.2.0
 - 0.1.0
 - 0.0.0
 - dev-newPatterns
 - dev-master
 - dev-AD-94
 - dev-detached
 - dev-title-http-exceptions
 - dev-update-dependencies
 
This package is auto-updated.
Last update: 2025-10-13 11:59:46 UTC
README
Ice is a general purpose PHP-framework. You may fully rely on Ice while developing complex web-applications. Ice key features are the built-in cache support of the main components, flexible configuration and the ability to easily extend existing functionality.
The basics
Routes
sample /config/Ice/Core/Route.php:
<?php return [ 'mp_page' => [ 'route' => '/page/{$page}', 'params' => [ 'page' => '(\d)' ], 'weight' => 10000, 'request' => [ 'GET' => [ 'Www:Layout_Main' => [ 'actions' => [ ['Ice:Title' => 'title', ['title' => 'Ice - Open Source PHP Framework ']], 'Www:Index' => 'main' ] ] ] ] ] ]
Important parts:
- 'mp_page' - Route name, (Uses: Route::getInstance('mp_page')->getUrl(20)) returned '/page/20' etc.)
 - 'weight' - Priority of matched routes. Greater weight - greater priority.
 - 'request' section - Array of available requuest methods (GET, POST etc.)
 - 'request/GET' - Only one item (first) contained layout action class as key and params as value
 
Actions
namespace Mp\Action; use Ice\Core\Action; class Page extends Action { protected static function config() { return [ 'view' => ['viewRenderClass' => 'Ice:Smarty', 'template' => null, 'layout' => null], 'actions' => [], 'input' => [], 'output' => [], 'cache' => ['ttl' => -1, 'count' => 1000], 'access' => [ 'roles' => [], 'request' => null, 'env' => null ] ]; } public function run(array $input) { } }
2 main methods - config and run
method config - return array:
- 'view' - Define way of render output data ('viewRenderClass' - render class, 'template' - template for render, layout - template-wrapper of rendered content in emmet style)
 - 'actions' - Child actions
 - 'input' - Array of input params with their data providers. Also information of validators, defaults end other.
 - 'output' - Фdditional sources of output (params and their data providers as well as 'input' section)
 - 'ttl' - time stored in cache (now supported only 3600 :) )
 - 'access' - Information to checks permissions to run action (support environment - one of 'production', 'test' or 'development' and request - one of 'cli' or 'ajax')
 
Models
Select examples:
// 1. $page = Page::getModel(20, ['title', 'desc']); // or Page::getModel(20, '*') // 2. $page = Page::create(['title' => 'page 20')->find([id, 'desc']); // 3. $page = Page::createQueryBuilder()->eq(['desc' => '20th page'])->getSelectQuery()->getModel();
Insert examples:
// 1. Page::create(['title' => 'page 20', 'desc' => '20th page'])->save(); // 2. Page::createQueryBuilder()->getInsertQuery(['title' => 'page 20', 'desc' => '20th page'])->getQueryResult();
Update examples:
// 1. Page::getModel(20, ['title', 'desc'])->set(['title' => 'another title'])->save(); // 2. Page::createQueryBuilder()->eq(['id' => 20])->getUpdateQuery(['title' => 'another title'])->getQueryResult();
Update examples:
// 1. Page::getModel(20, '/pk')->remove(); // 2. Page::createQueryBuilder()->getDeleteQuery(20)->getQueryResult();