traineratwot / web-tool-template
Installs: 32
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ^8.1
- bramus/router: ~1.6
- gettext/gettext: ^5.6
- gettext/js-scanner: ^1.1
- gettext/json: ^1.0
- gettext/php-scanner: ^1.3
- gettext/translator: ^1.0
- nelexa/zip: ^4.0
- phpmailer/phpmailer: ^6.5
- smarty/smarty: ~4.2
- tiben/crontab-manager: ^1.3
- traineratwot/cache: ^2.0
- traineratwot/composer-config: ^1.1.0
- traineratwot/pdo-extended: dev-master
- traineratwot/php-cli: dev-main
Requires (Dev)
- jetbrains/phpstorm-attributes: ^1.0
- roave/security-advisories: dev-latest
README
Простой фреймворк для небольшого веб-приложения
includes
- Bootstrap - style
- Jquery - javascript
- Smarty - php templates
- gettext - locale
- LiteSql,mysql,... - database
Установка
- распаковать это в директорию
- запустить
composer create-project traineratwot/web-tool-template {project-name}
cd {project-name}
- !обязательно!
composer update
- Настроить подключение к базе данных в
core/config.php
composer wt:Install
- необязательно
composer wt:composer-config-update
- поможет вашей IDE ориентироваться в константах - необязательно
wt DevServer
- запустит наблюдатель который бдует обновлять страницу в браузере при изменении фалов
Instructions
-
File Structure
locale
=>gettext
переводыcore
=> Закрытый от внешнего доступа каталог с ядром системыcore/model
=> Папка с основными скриптами. ничего там не трогайтеcore/pages
=> Каталог cо страницами сайта. имена файлов должны совпадать с URL либо используйтеcore/router.php
core/view
=> Каталог с php-кодом, который выполняется перед рендерингом соответствующей страницы. имена файлов должны совпадать с URL либо используйтеcore/router.php
core/templates
=> Каталог сSmarty
шаблонамиcore/database
=> Каталог с базой данных SQLite, Вы можете использовать любую базу данныхcore/ajax
=> каталог с файлами php, доступными пользователям. имя файла должно совпадать с именем метода в поле действия в форме. вызов index.php?a=[имя файла без расширения]core/cron/controllers
=> Папка с крон заданиями. смотриwt cron
core/config.php
=> основной файл конфигурацииcore/classes
=> Каталог с вашими классами и скриптамиcore/classes/smarty/plugins
=> Каталог с пользовательскимиSmarty
плагинамиcore/classes/tables
=> Каталог с классами расширяет BdObject для работы с таблицей БД. смотриwt make table
core/classes/traits
=> Каталог с полезнымиtraits
core/components
=> Каталог с компонентами
-
console tool
-
wt error
- показать журналы ошибок -
wt error clear
- очистить журналы ошибок -
wt cache
- очистить кеш ошибок -
wt makeAjax {name} {type? 'get'|'post'}
- создать класс метода ajax. eg:wt make ajax "logout"
-
wt makeTable {name} {primaryKey? 'id'}
- создать класс объекта таблицы. eg:wt make table "users"
-
wt makePage {url} {template? 'base'}
- создать класс и шаблон страницы для URL. eg:wt make page "catalog/page1 base"
-
wt makeCron {path}
- создать cron. eg:wt make cron "category/test"
-
wt lang {locale}
- создать файл локали .po из проекта исходного кода. eg:wt lang ru_RU.utf8
-
wt lang clear
- очистить кеш языков eg:wt lang clear
-
wt lang all
- показать доступные языки eg:wt lang all
-
wt cron {path to controller}
- сгенерировать команду запуска для crontab eg:wt cron "category/test.php"
-
wt cron {path to controller} run
- попробовать запустить задание cron:wt cron "category/test.php" run
#in develop
components create {name}
- создает новый компонентcomponents package {name}
- упаковывает компонент в транспортный пакетcomponents install {name}
- устанавливает компонент из транспортного пакетаcomponents make{Ajax|Table|Page} {name} ...
- аналогичноwt make...
только для компонента
-
-
Пользователь
- login:
admin@example.com - password:
admin123
- login:
-
Локализация
- Отредактируйте функцию
WT_LOCALE_SELECT_FUNCTION
в конфиге под свой способ определить язык пользователя - Создать файл локали .po из исходного кода проекта eg:
wt lang ru
- Отредактируйте файл .po в паке
locale
. Я использую poEdit для этого - Готово
- Если не работает - отключите
gettext
в конфиге
API
Cache
/** * @param $key mixed * @param $value mixed * @param $expire int * @param $category string * @return mixed */ Cache::setCache($key,$value,$expire=600,$category = ''); /** * @param $key mixed * @param $category string * @return mixed|null */ Cache::getCache($key,$category = ''); /** * @param $key mixed * @param $category string * @return bool */ Cache::removeCache($key,$category = '');
Console
Console::info('text') //print cyan text; Console::success('text') //print green text; Console::warning('text') //print yellow text; Console::failure('text') //print red text; Console::prompt('Are you sure you?', ?hidden)// ask user in console /** * @param $string * @param $foreground_color * @param $background_color * @return mixed|string */ Console::getColoredString('text','red','yellow') //return colored string Console::foreground_colors //list text color Console::background_colors //list background color
Config
Config::get('key','?namespace') //return value; Config::set('key','value','?namespace') //set value; // тоже самое но с возможностью перезаписывать в процессе выполнения ConfigOverridable::set('OverridableKey','value','?namespace') ConfigOverridable::get('OverridableKey','?namespace') Config::get('OverridableKey','?namespace') //return value;
FAQ
- Композер выдает фатальную ошибку?
- Это значит что у вас устаревшая версия
composer
обновите его или используйтеphp composer.phar ...
- Это значит что у вас устаревшая версия