Минимум: CMS

3.97K
.
<?php
// Файл articles/create.php
$sp = [
  'acl' => [
    'allowed' => [
      'admin' => '*' // Только юзеры с ролью admin могут сюда попасть, остальным доступ закрыт
    ]
  ]
];

по моему это неудобно. не гибко
лучше делать доступ по принципу модуль:экшен
всегда можно будет добавить права конкретному пользователю или целой группе, и убрать
.
Добавлено: 17.04.2017 / 13:16
ramzes, оно тут так и работает, просто это пример одной страницы, обычно же наоборот, конфиги указываются для всех страниц как то так:
<?php
// Файл config.php
$sp = [
  'acl' => [
    'allowed' => [
      'guest' => [ // Незареганные
        'articles/index.php' => ['GET'], // Список статей
        'articles/view/index.php' => ['GET'], // Просмотр статьи
      ],
      'user' => [ // Зареганные
        'articles/index.php' => ['GET'], // Список статей
        'articles/view/index.php' => ['GET'], // Просмотр статьи
        'articles/create/index.php' => ['GET'], // Создание статьи
        'articles/create.php' => ['POST'], // Создание статьи
      ],
      'admin' => '*' // Админы могут все
    ]
  ]
];


Добавлено: 17.04.2017 / 13:17
Фильтрация ввода и работа с БД
<?php                                                                                                                                                  
$sp = [                                                                         
  'layout' => [                                                                                                
    'title' => 'Статья',                                                        
  ],                                                                            
  'input' => [                                                                                                 
    INPUT_GET => [                                                                                             
      'id' => [                                                                   
        FILTER_SANITIZE_NUMBER_INT,                                                    
        [                                                                       
          'filter' => FILTER_VALIDATE_INT,                                                                 
          'options' => ['min_range' => 1],                                      
          'comment' => 'Идентификатор должен быть положительным, целым числом'  
        ]                                                                                       
      ],                                                                        
    ],                                                                          
  ],                                                                            
  'pdo' => [                                                                    
    'queries' => [                                                                                             
      'article' => [                                                            
        'SELECT * FROM article WHERE id = :id',                                 
        'params' => [                                                                                          
          'id' => &$_GET['id'],                                                 
        ],                                                                                                     
      ],                                                                                                       
    ],                                                                                                         
  ],                                                                                                           
];                                                                                                             
include('../../sp.php');                                                                                       
$article = $article->fetch();
?>                                                                              
<h1>                                                                            
    <?= $article->title ?>                                                      
</h1>                                                                           
<div>                                                                           
    <?= $article->content ?>                                                    
</div>                                                                          
<ul>                                                                            
    <li>                                                                        
        <a href="/articles/edit?id=<?= $article->id ?>">edit</a>                
    </li>                                                                       
    <li>                                                                        
        <a href="/articles/delete.php?id=<?= $article->id ?>">delete</a>        
    </li>                                                                       
</ul>
.
(\/)____o_O____(\/)
Delphinum, а не получится что конфиг будет сортовлять 4 / 5 кода?
.
Koenig, соль в том, что кода там должно быть минимум, конфиг это декларация, в которой ты указываешь что хочешь получить в результате, а как это будет достигнуто, решит сама система. Это снижает порог входа для новичков и позволяет сократить число ошибок
.
(\/)____o_O____(\/)
Delphinum, ну если конфиг будет расти вправо, то новичок скорее всего запутается и забудет где нибудь добавить запятую
.
# Koenig (17.04.2017 / 13:26)
Delphinum, ну если конфиг будет расти вправо, то новичок скорее всего запутается и забудет где нибудь добавить запятую
отладчик ему об этом скажет.
если он не способен прочитать текст ошибки, то зачем вообще тогда все?)
.
Delphinum
Koenig, я думаю реализовать модуль для администрирования всего этого "мышкой", чтоб система сама могла себя конфигурировать.

Суть в том, что если ты опытен, то ты не ставишь себе этот модуль (или не ставишь дистрибутив с ним), а редачишь руками.
.
человек И пароход
я еще не проснулс0 и не могу врубиться что оно такое и зачем оно нужно
ктонить разжует ??
.
Crack, эт простая CMS, работающая через конфиги и минимум программирования
.
человек И пароход
Delphinum, очень компактно
Всего: 119