https://github.com/smart-core/cms-reborn
[DEPRECATED] Development sandbox of Smart Core CMS based on Symfony
https://github.com/smart-core/cms-reborn
Last synced: 7 months ago
JSON representation
[DEPRECATED] Development sandbox of Smart Core CMS based on Symfony
- Host: GitHub
- URL: https://github.com/smart-core/cms-reborn
- Owner: Smart-Core
- License: mit
- Created: 2020-01-11T07:34:21.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-01T19:55:12.000Z (about 3 years ago)
- Last Synced: 2025-01-04T08:46:42.642Z (about 1 year ago)
- Language: PHP
- Homepage:
- Size: 1.75 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Запуск в Docker
---------------
Документация тут [docker.md](doc/docker.md)
Создание юзера
--------------
Посмотреть список всех пользователей:
```
bin/console user:list
```
Создание юзера:
```
bin/console user:add
```
Назначить роль пользователю, например: ROLE_SUPER_ADMIN
```
bin/console user:role:promote
```
Для запуска команд в докере, нужно перед командой написать: `docker-compose run php` итого формат будет такой:
```
docker-compose run --rm php
# например:
docker-compose run --rm php bin/console user:list
```
Подключение CMS в проект
------------------------
Загрузка конфигов:
```php
// App\Kernel.php
// ...
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{
$container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
$container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
$container->setParameter('container.dumper.inline_factories', true);
$confDir = $this->getProjectDir().'/config';
// Загрузка конфигов CMS.
$confDirCms = $this->getBundle('CMSBundle')->getPath().'/Resources/config';
$loader->load($confDirCms.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
$loader->load($confDirCms.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob');
// Потом конфиги приложения.
$loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
}
// ...
```
Файрвол:
```yaml
# config/packages/security.yaml
security:
# ...
firewalls:
# ...
cms_admin:
anonymous: ~
context: cms
pattern: ^/%cms.admin_path%
form_login:
check_path: /%cms.admin_path%/
login_path: /%cms.admin_path%/
default_target_path: /%cms.admin_path%/
logout:
path: /%cms.admin_path%/logout
remember_me:
secret: "%env(APP_SECRET)%"
name: REMEMBER_ME
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~
# ...
access_control:
# ...
- { path: ^/%cms.admin_path%/$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/%cms.admin_path%, roles: ROLE_ADMIN }
# ...
```
Маршруты
```yaml
# config/routes.yaml
# ...
smart_core_cms:
resource: '@CMSBundle/Resources/config/routes.yaml'
```
Наборы данных
-------------
Поля таблиц можно задавать несколькими способами:
1. Указать готовый трейт, в этом случае настроить можно только is_index.
2. Указать доктрин Doctrine\DBAL\Types\Types, в этом случае можно как угодно настроить поле (пока что конфиг записывается тут: `Resourse/config/dataset.yaml`)
На каждое поле можно указать аннотации, например указав следующий набор будет создан первичный ключ:
```
@ORM\Id
@ORM\GeneratedValue(strategy="AUTO") // {"AUTO", "SEQUENCE", "TABLE", "IDENTITY", "NONE", "UUID", "CUSTOM"}
```
Валидаторы
TODO
----
Cornerstone -> Elements