0
|
1 <!doctype html>
|
|
2 <html lang="ru">
|
|
3
|
|
4 <head>
|
|
5 <meta charset="utf-8">
|
|
6 <title>Книга</title>
|
|
7 <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
8 <link rel="stylesheet" href="/man/css/prism.css">
|
|
9 <link rel="stylesheet" href="/man/css/styles.css">
|
|
10 <style>
|
|
11 </style>
|
|
12 </head>
|
|
13
|
|
14 <body>
|
|
15 <main>
|
|
16
|
|
17 <h1>Книга</h1>
|
|
18
|
|
19 <h2>Введение</h2>
|
|
20
|
|
21 <p>Описание алгоритмов работы CMS, чтобы было понятно как писать код для нее и модифицировать.</p>
|
|
22
|
|
23 <h2>Настройки CMS</h2>
|
|
24
|
|
25 <p>
|
|
26 Все настройки хранятся в файле .cms/config.php.
|
|
27 Он создается при установке.
|
|
28 Для каждого модуля имеется отдельный подмассив с именем этого модуля.
|
|
29 Такой подход позволяет быстро их загружать, независимо от наличия соединения с базой данных.
|
|
30 Кроме того PHP умеет кешировать opcache.enable=1 в php.ini и файл находится в памяти в откомпилированном виде.
|
|
31 При сохранении его на диск вызывается функция opcache_invalidate()
|
|
32 которая заставит PHP перечитать файл при следующем его включении.
|
|
33 </p>
|
|
34
|
|
35 <h2>Структура папок</h2>
|
|
36
|
|
37 <p>
|
|
38 Все файлы CMS хранятся в папке .cms что позволяет в корне сайта размещать что угодно,
|
|
39 в том числе и сгенерированные страницы.
|
|
40 И последующее к ним обращение из браузера не запускает CMS.
|
|
41 Файлы отдаются с диска веб-сервером.
|
|
42 </p>
|
|
43 <p>
|
|
44 Файлы и папки начинающиеся на точку считаются скрытыми и прямой доступ к ним запрещен.
|
|
45 Но веб-сервер, через файл .htaccess, настраивается так, что всегда обращается к файлу .cms/index.php.
|
|
46 Если приходит запрос /mytpl/css/style.css, то идет попытка найти файл .cms/mytpl/css/style.css,
|
|
47 и если он есть то он копируется в корневую папку по пути указанному в запросе и отдается браузеру.
|
|
48 Если на диске уже имеется такой файл, то он не перезаписывается.
|
|
49 Единственная тут странность в том, что если файл был на диске, то такого запроса к CMS быть не может.
|
|
50 </p>
|
|
51
|
|
52 </main>
|
|
53 <script src=/man/js/prism.js></script>
|
|
54 </body>
|
|
55 </html>
|