Последние сообщения

Страницы: [1]
1
Установка Apache + PHP + MySQL на Windows / Установка Apache + PHP + MySQL на windows
« Последний ответ от SysBox 05 Ноябрь 2017, 01:21:37 »
Создание среды разработки (локальный веб-сервер)



1. Локальный веб-сервер можно быстро установить автоматически

XAMPP
DENWER
OPEN-SERVER
и т.п. но понимания, как все работает, не будет.



2. Ниже инструкция как сделать локальный веб-сервер вручную

Устанавливаем и настраиваем Apache + PHP + MySql на Windows7 - Windows10.
По сути мы создадим домашний хостинг. Обычно используют его для разработки и тестирования. Использовать как боевой (вместо платного хостинга) можно но так никто не делает по причинам:

* нужно отдельно заниматься безопасностью
* 24 часа в сутки шумит компьютер
* не рациональный расход электричества
* железо изнашивается быстрее
* железо сломалось, нет электричества, нет интернета - сайты пропали на Х времени
* нужно организовывать резервирование данных
* желательно оплачивать постоянный IP адрес

Если хотите реальный хостинг, то купите его (рейтинг хостингов).



3. Создаем папки

c:/server/apache/ - apache
c:/server/php/ - php
c:/server/php_error_log/ - логи

c:/www/ - Общая папка для всех сайтов
c:/www/test.ru/ - Папка конкретного сайта. На этом уровне располагают файлы которые не видны в интернете, например служебные, пароли, логи, статистика и т.д.
c:/www/test.ru/www/ - Здесь размещаются непосредственно файлы сайта (картинки, HTML, файлы для скачивания и т.д.) Грубо говоря, если в браузере набрать test.ru, то будет "видно"
 содержимое именно этой папки.
c:/www/test.ru/log/ - Логи конкретного сайта



4. Настройка Windows

Файл hosts
Что бы при наборе в браузере определенных сайтов браузер искал их не в интернете, а на локальном компьютере,
в файл: C:\WINDOWS\system32\drivers\etc\hosts добавляем:

127.0.0.1 localhost
127.0.0.1 test.ru
127.0.0.1 www.test.ru


Тут запись "127.0.0.1 localhost" дает возможность обращаться к ПК и по IP и по названию localhost. Это избавит от проблем подключения к mysql, например.

Переменная PATH
Обязательно прописать в переменную PATH путь до PHP, иначе не будет работаь CURL и другие функции.
'Панель управления\Система и безопасность\Система' > 'Дополнительные параметры' > 'Переменные Среды' > 'Системные Переменные'
Найдите строку, содержащую переменную PATH
Допишите в конец строки ';c:\server\php\'


5. Apache

Веб-сервер - это физический или виртуальный компьютер. На нем запущена и постоянно работает специальная программа Apache. Если к этому серверу послать запрос, например через браузер, именно Apache примет этот запрос, запустит на сервере нужные программы и выдаст обратно ответ. Браузер из этого ответа сформирует привычную нам страницу сайта и покажет ее пользователю.

Скачивание
На официальном сайте НЕТ файлов для windows. Но там http://httpd.apache.org/docs/current/platform/windows.html сказано:
идите на https://www.apachelounge.com/download/ и там качайте файлы под windows.
Качаем, например: httpd-2.4.33-win64-VC15.zip

Установка
Копируем файлы из скачанного архива в папку
c:/server/apache
Вы можете выбрать любую папку, но тогда и настройки далее должны изменить соответствующим образом.

Запуск
Для запуска/перезапуска Apache используется файл:
c:/server/apache/bin/ApacheMonitor.exe
Желательно настроить его запуск от имени администратора (свойства файла > совместимость > запуск от имени админа)

Если при запуске "говорит", что необходим файл vcruntime140.dll, то нужно установить
Microsoft Visual C++ 2015
https://www.microsoft.com/ru-ru/download/details.aspx?id=53840
На момент написания статьи, сервера microsoft заблокированы. Для обхода устанавливаем любой плагин на браузер chrome типа "бесплатный прокси VPN". После скачивания нужных файлов microsoft обязательно выключите плагин - он может мешать работе нашего сайта (test.ru будет не виден).

Настройки
В файле c:/server/apache/conf/httpd.conf
Для применения изменений в этом файле нужно перезапускать Apache.

Заменяем все вхождения c:/Apache24 на c:/server/apache

Заменяем Listen 80 на Listen 127.0.0.1:80
Чтобы Apache принимал запросы только с локального компьютера, указываем его неизменный IP адрес и порт: 127.0.0.1:80
Т.е. скачать или запустить что-то на вашем хостинге cможете только Вы.

Создаем:
<Directory "C:/www">
   AllowOverride All
   Order allow,deny
   Allow from all
   Require all granted
   Options Indexes FollowSymLinks Includes
</Directory>

AllowOverride All - для авторизации через .htaccess
Order allow,deny - устанавливает порядок обработки директив "разрешить", "запретить"
Allow from all - разрешить доступ всем
Require all granted - разрешить доступ всем
Options Indexes - возвращает клиенту листинг каталога, если в нем нет индексных файлов
Options FollowSymLinks - Позволяет использовать символические ссылки (нужно для работы mod_rewrite)
Options Includes - Разрешает выполнение SSI директив в файлах

Убрать знак комментария "#":
LoadModule rewrite_module modules/mod_rewrite.so
Модуль mod_rewrite.so нужен для реализации человеку понятных адресов (ЧПУ)
Применяется для создания ссылок на страницы вида: test.ru/news/2055/03/

После кода:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
Изменяем AllowOverride None на AllowOverride All
Для того, что бы можно было использовать файлы .htaccess

После кода:
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
Вставить:
AddType text/html .shtml .html. .htm
AddOutputFilter INCLUDES .shtml .html .htm

Указываем расширения файлов для SSI

Заменяем DirectoryIndex index.html на DirectoryIndex index.html index.htm index.php
Тогда при наборе в браузере любой папки сервер сначала будет искать и пытаться запустить указанные тут файлы

Убрать знак комментария "#":
Include conf/extra/httpd-vhosts.conf
Присоединение к основному конфигурационному файлу, файла httpd-vhosts.conf
Тогда при запуске Apache прочитаются оба файла настроек.

Далее настройки в файле
httpd-vhosts.conf

Даем понять Apache, что:
Есть виртуальный хост, т.е. сайт.
Его файлы лежат здесь "DocumentRoot"
Показывать именно этот сайт если запрашивают домен "ServerName" или "ServerAlias"
Логи писать сюда "ErrorLog" и сюда "CustomLog"
 
Для этого удаляем старые записи
<virtualhost>
.......
</virtualhost>

и добавляем новые:

<VirtualHost *:80>
DocumentRoot c:/www/test.ru/www
ServerName test.ru
ServerAlias www.test.ru
ErrorLog c:/www/test.ru/log/error.log
CustomLog c:/www/test.ru/log/access.log common
</VirtualHost>


Все папки нужно создать. Если папок не будет, сервер Apache не запустится.

Устанавливаем Apache как службу windows.
До этого действия Apache должен без проблем запускаться, иначе установить службу не получится.
Находим в меню ПУСК "командная строка", правой кнопкой по ней и выбираем "запуск от имени администратора"
Откроется черное окошко - консоль. Тут набираем:
c:/server/apache/bin/httpd.exe -k install -n "Apache2.4"

Проверка работы Apache
1. Запускаем/перезагружаем Apache (кнопки старт/перезапуск должны стать рабочими после запуска службы)
2. Создаем файл c:/www/test.ru/www/apache.html с содержимым: Apache work!3. Заходим в браузере по адресу: http://test.ru/apache.html



6. Язык PHP

PHP - это популярный язык программирования применяемый для создания сайтов.

Скачивание
http://windows.php.net/download/
Например: VC15 x64 Thread Safe (php-7.2.4-Win32-VC15-x64.zip)
"Thread Safe" означает многопоточность. Если PHP ставится как модуль (мы так и будем делать) то ставим с Thread Safe.

Установка
Распаковываем архив в папку:
c:/server/php/
Вы можете выбрать любую папку, но тогда и настройки далее должны изменить соответствующим образом.

Запуск
Запускать его будет Apache.

Настройки
В файле c:/server/php/php.ini
Если его нет, то переименовываем c:/server/php/php.ini-development в c:/server/php/php.ini
Для применения изменений в этом файле нужно перезапускать Apache.

short_open_tag = On
позволит выполнять код PHP в контейнере <? ... ?>
по умолчанию кодом PHP считается все в контейнере <?php ... ?>

max_execution_time = 3600
максимальное время выполнения программы в секундах (по умолчанию 30)

max_input_time = 3600
максимальное время получения данных (например загрузки файла) в секундах (по умолчанию 60)

memory_limit = 256M
максимальный объем памяти который может занять Ваш PHP скрипт (по умолчанию 32)

display_errors = On
выводить на экран ошибки PHP (на реальных хостингах всегда OFF в целях безопасности)

display_startup_errors = On
выводить на экран ошибки в момент запуска PHP

post_max_size = 1000M
максимальный объем, который можно передать PHP скрипту методом POST (по умолчанию 4M)


upload_max_filesize = 1000M
максимальный объем файла, который можно передать PHP скрипту (по умолчанию 2M)

error_log="c:\server\php_error_log\php-errors.log"
Путь к файлу логов

date.timezone ="Europe/Moscow"
Требуется установка времени сервера иначе PHP постоянно будет выдавать предупреждения

Важно указать место расширений
extension_dir = "c:/server/php/ext"
Для всех нужных расширений заменяем соответствующие строчки по принципу:
;extension=gd2 на extension=php_gd2.dll
(т.е. убираем знак ; добавляем php_ и добавляем .dll)
Нужны библиотеки:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
extension=php_openssl.dll

extension=php_curl.dll - для чтения удаленных сайтов
extension=php_gd2.dll - для работы с изображениями
extension=php_mbstring.dll - для работы с многобайтовыми строками
extension=php_mysqli.dll - для подключения к базе данных mysqli
extension=php_openssl.dll - для чтения URL с https в функции file_get_contents()

Донастраиваем Apache
в файле c:/server/apache/conf/httpd.conf

cоздаем:
LoadModule php7_module c:/server/php/php7apache2_4.dll
Для подключения PHP

cоздаем:
AddHandler application/x-httpd-php .php .htm .html
Файлы с такими расширениями будут обрабатываться как PHP программы

cоздаем:
PHPIniDir "c:/server/php"
Указываем месторасположение настроек PHP (php.ini)

Проверка работы PHP
1. Запускаем/перезагружаем Apache.
2. Создаем файл c:/www/test.ru/www/php.php с содержимым: <?php phpinfo(); ?>3. Заходим в браузере по адресу: http://test.ru/php.php


7. MySQL

MySQL - это база данных. Наличие базы данных почти всегда является необходимостью.

Скачивание
Качаем маленький файл-установщик (~15мб). Он даст выбор что качать и устанавливать далее.
https://dev.mysql.com/downloads/installer/
Попросят авторизоваться или зарегистрироваться нажмите ниже "No thanks, just start my download." (Нет, спасибо, начать скачку)

Установка
Может понадобится установить "Microsoft .NET Framework 4.5.2"
https://www.microsoft.com/ru-ru/download/confirmation.aspx?id=42642

Может понадобится установить "Visual C++ для Visual Studio 2013"
https://www.microsoft.com/ru-RU/download/details.aspx?id=40784

Инсталлятор предложит установить разные готовые наборы элементов Mysql. Выбираем "custom" т.е. настраиваемая.
Далее выбираем только 1 компонент - сам mysql 64 бит.
После установки будет настройка, там в основном жмем "Next" (далее), кроме 2 пунктов:
На этапе "Autentification Method" выбрать второй пункт "Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)".
На этапе "Account and Roles" указываем будущий логин/пароль администратора mysql.
Если нужно что-то поправить в установленном mysql, запускаем файл-инсталлятор заново.

Запуск
Запускается в коде программ PHP

Настройка
В файле c:\ProgramData\MySQL\MySQL Server 5.7\my.ini
Для применения настроек нужно перезагрузить службу windows.
Как посмотреть службы Windows: нажмите клавиши Win + R на клавиатуре и введите команду services.msc. Служба будет иметь название например "MySQL80". Для перезагрузки кликните правой кнопкой и выберите "перезагрузить".
Перезагружать Apache НЕ нужно.

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Задает кодировку по умолчанию. utf8mb4 - рекомендуемая кодировка.

max_allowed_packet=100M (по умолчанию 4M)
позволяет выполнять большие по размеру команды SQL, что бывает необходимо для копирования/восстановления копий баз данных

join_buffer_size=8M (по умолчанию 256K)
Буфер объединения таблиц

sort_buffer_size=8M (по умолчанию 256K)
Буфер сортировки таблиц

default-storage-engine=MyISAM (по умолчанию INNODB)
по умолчанию таблицы будут создаваться с типом MyIsam
Для новчиков лучше myisam - работают быстрее и более устойчивы к пломкам, например при отключении электричества

Проверка работы MySQL из PHP
1. Запускаем/перезагружаем службу mysql.
2. Создаем файл c:/www/test.ru/www/mysql.php с содержимым: <?php 
if (mysqli_connect('localhost''логин''пароль')) {
echo 'MySQL work!';
} else {
echo 'Ошибка подключения к MySQL: '.mysqli_connect_error();
?>
3. Заходим в браузере по адресу: http://test.ru/mysql.php


8. phpMyAdmin

phpMyAdmin - это программа для администрирования базы данных MySQL.
Написана на языке PHP, работает через браузер.
Примечательна тем, что на большинстве реальных хостингах она установлена и рекомендуется для работы с базой данных.

Скачивание
https://www.phpmyadmin.net/downloads/

Установка
Распаковываем все файлы в какую-нибудь папку на сайте, например в "c:/www/test.ru/www/pma/"

Запуск
Набираем в браузере http://test.ru/pma/

Настройка
Создаем в корне файл "config.inc.php" с содержимым:

<?php
/* Servers configuration */
$i 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['only_db'] = '';
$cfg['Servers'][$i]['hide_db'] = '';

/* End of servers configuration */
$cfg['blowfish_secret'] = 'secret';
$cfg['Export']['compression'] = 'zip';
$cfg['Export']['charset'] = 'utf-8';
$cfg['Export']['sql_drop_table'] = true;
$cfg['FirstLevelNavigationItems'] = 200;
$cfg['MaxNavigationItems'] = 500;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['LoginCookieValidity'] = 43200;
$cfg['TablePrimaryKeyOrder'] = 'DESC';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['QueryHistoryDB'] = true;
$cfg['QueryHistoryMax'] = 500;
?>

9. Программы

Программы для работы с MySQL
Написан на PHP, работает через браузер
https://www.phpmyadmin.net/downloads/
Windows приложение:
https://www.heidisql.com/download.php

Текстовый редактор
https://notepad-plus-plus.org/

Средство разработки (платное)
Это один из лидеров средств разработки веб-ПО вместо обычного текстового редактора.
Ставить не обязательно, но желательно.
Универсальный, под разные языки:
http://www.jetbrains.com/idea/
Изначально настроен под PHP:
http://www.jetbrains.com/phpstorm/

Виртуальная машина VirtualBox
https://www.virtualbox.org/
Дает возможность не захломлять свой ПК, а экспериментировать на виртуальном windows.

2
SysBox / Документация
« Последний ответ от SysBox 03 Ноябрь 2017, 15:46:55 »
SysBox - это простой фреймворк на PHP http://sysbox.ru
Название состоит из двух слов: System (система) и Box (коробка).

------------------
Основные принципы

1. Существуют коробки с системами.
Например коробка с админкой, коробка с библиотеками, коробка с сайтом1, коробка с сайтом2 и т.д.
Весь ваш код можно сложить в одну коробку или наоборот разбить на десятки коробок, как вам удобнее.
Каждая коробка это отдельный мир и может быть полностью автономна, даже со своим подключением к БД если нужно.
Или наоборот коробки могут активно запускать друг у друга методы, как вам удобнее.

2. Весь ваш код находится в методах классов.
Что бы запустить метод в текущей коробке достаточно к нему обратиться через $this. Пример так: $this->название класса->название метода();
При этом класс будет автоматически загружен и проинициализирован. На этом все построено.
Название класса обычно на 100% совпадает с путем до файла с этим классом.

3. Конфигурационный файл един для всех коробок.
Он компактный т.к. содержит общие правила и исключения из этих правил.
Автоматическая загрузка и инициализация классов происходит в соответствие с настройками.

------------------
Файлы двигателя

Box.php - Класс всех коробок
Config.php - Настройки
Action.php - Запуск метода по роут-строке
Engine.php - Двигатель
Error.php - Обработка ошибок
Exception.php - Для создания исключений PHP
Extend.php - Базовый класс для всех классов пользователя
Response.php - Формирует ответ сверверу
View.php - Работа с шаблонами
         
------------------
Файлы, классы

Весь пользовательски код SysBox находится внутри методов классов.
Класс всегда находится в отдельном файле. Один файл - один класс.
Одна коробка имеет свою персональную папку, в которой лежат файлы классов.
Файлы могут находится в корне или в подпапках на любой глубине.

Название класса = названия папок + название файла класса.
Соответственно, по названию класса почти всегда можно понять где находится файл.
В названии класса папки и файлы разделены между собой нижним подчеркиванием:

(в примерах ниже /www/myBox/ - папка коробки)

/www/myBox/Test.php = Test
/www/myBox/Admin/Test.php = Admin_Test
/www/myBox/Admin/Test/Test.php = Admin_Test_Test

По этому в названии папок, файлов и классов нельзя использовать нижнее подчеркивание.
Для сложных названий используется регистр букв:

/www/myBox/MyTest.php = MyTest
/www/myBox/SuperAdmin/MyTest.php = SuperAdmin_MyTest

Название папки коробки не участвует в формировании названия класса.
Все названия папок, файлов и классов должны начинаться с большой буквы.

------------------
Запуск

1. Подключаем файл двигателя sysbox. Нужно только 1 раз за все время работы программы.
require('/www/sysbox/Engine.php');

2. Получаем от двигателя экземпляр коробки "admin". Экземпляров одной и той же коробки невозможно сделать много, он всегда один.
$Admin = \sysbox\engine\engine::getBox('admin');

3. Запускаем любые методы:
$Admin->Test1->myMethod1();
$Admin->Test2->myMethod2();
и т.д.

Для запуска напрямую из браузера:

1. Делаем так, что любые запросы к серверу приводят к запуску например index.php. При этом ему в переменной, например "_r", передается URL запроса к серверу. На сервере Apache для этого в файле .htaccess можно прописать подобное: RewriteRule ^([^?]*) /admin/index.php?_r=$1 [L,QSA]

2. Внутри index.php так же загружаем двигатель и инициализируем нужную коробку:
require('/www/sysbox/Engine.php');
$Admin = \sysbox\engine\engine::getBox('admin');

3.
// Выдаем браузеру результат работы метода в том виде, в котором запрашивали: html или json
$Admin->Response->setOutput(
   // Запуск класс->метод(аргументы) на основе роут-строки и GET данных
   // В данном случае роут-строка это URL запроса из браузера
   $Admin->Action->execute(
      array(
            'route' => $_REQUEST['_r'],
            'isBrowser' => true
        )
   )
);


В нем создается экземпляр класса-ядра SysBox и производится запуск действия $SysBox->action('') где передается строка - роут.
В этой строке указано в каком классе, какой метод, с какими параметрами запустить.
Такая строка формируется обычно на основе URL который запросили из браузера.
Например:

'subDir_fileClass__method__param1_param2'
где:
'subDir_fileClass' - название класса
'method' - метод в классе
'param1_param2' - параметры метода

Класс, метод и параметры разделяются двойным нижним подчеркиванием.
Если не указан метод, то будет запущен метод 'index'.
Если не указан класс, то будет запущен класс по умолчанию (задается в настройках коробки).
Если в строке контроллера последний символ /, то это означает, что передают URL и в нем файл не указан. По этому добавляется файл index (и в нем будет запущен метод index).
Параметры метода отделены друг от друга одним нижним подчеркиванием.
В строке контроллера можно не указывать первые большие буквы в названии класса (SysBox сам это поправит).
В названии класса можно использовать как нижние подчеркивания, так и любые слэши. Это позволяет браузеру "думать", что он запрашивает реальный файл лежащий в папке, а значит во вьюшах допустимо использовать относительные пути к jpg, css, js.
Например:
/subdir1/subdir2/fileClass__method__param1_param2 - $SysBox->Subdir1_Subdir2_FileClass->method(param1, param2);
/fileClass__method - $SysBox->FileClass->method();
/fileClass - $SysBox->FileClass->index();


Настройки
-----------

Все настройки находятся в одном файле /sysbox/config.php
Из себя представляют многомерный массив.
Первый уровень массива содержит глобальные настройки для всей системы в целом.
В элементе 'box' содержатся настройки конкретных коробок.
Зарезервировано название коробки 'default' - это не существующая, виртуальная коробка настройки которой имеют все остальные коробки по умолчанию.
В массиве каждой коробки имеется:



Автозагрузчик
-----------

В SysBox получить экземпляр класса можно 4 способами:

1. $this->initClass('Class', array(param1 => value1, param2 => value2));
Всегда будет создан новый экземпляр класса с указанными параметрами.

2. $this->getClass('Class', array(param1 => value1, param2 => value2));
При первом запросе будет создан и выдан экземпляр, при всех последующих будет выдаватьсь один и тот же экземпляр, причем параметры будут проигнорированы, если их указать. Параметры используются только при первой инициализации.

3. $this->Class(param1, param2);
То же самое, что $this->getClass.

4. $this->Class->myMethod();
То же самое, что $this->getClass, только без возможности явно указать параметры.

Под названием класса следует понимать не только реальное название класса, но и его алиас (сокращенное название). Используя любой из них можно получить экземпляр реального класса. Т.е. системе все равно, инициализировать реальный класс или алиас. Алиас может скрывать за собой даже класс из другой коробки.

В настройках коробки настройки классов/алиасов указываются в массиве "initClass". Там настройки по умолчанию которые могут быть проигнорированы если инициализация происходит с явно указанными параметрами. Перед инициализацией класса/алиаса всегда сначала идет проверка наличия настроек. Основная масса реальных классов не требует настроек вообще, а "initClass" используется для создания не большого списка алиасов и задания параметров по умолчанию, когда они нужны.

В настройках каждой коробки есть асоциативный массив "initClass".
Ключ - название класса/алиаса.
Значение - подмассив с настройками класса/алиаса (все не обязательны).

В подмассиве:
box - название коробки откуда взять класс/алиас (если берем не из текущей коробки).
class - название класса/алиаса которое использовать для инициализации.
arguments - аргументы класса по умолчанию.



Алиасы
-----------

При инициализации классов/алиасов вместо $this можно использовать
$this->Box - экземпляр класса текущей коробки.
$this->getBox('otherBox') - любая другая коробка.

Обратиться к классу из другой коробки можно двумя способами:

1. прямое указание нужной коробки:
$this->getBox('otherBox')->Class->Method();

2. в настройках текущего класса создаем алиас указывающий на класс в другой коробке, далее просто инициализируем его как обычный класс:
$this->Class->Method();
Тут "Class" = алиас ведущий в другую коробку.

Коробки - это полноценный "синглтон". Экземпляр коробки всегда создается только один. Создаются экземпляры коробок не заранее, а по первому запросу.




Особенности:
-------------
1. Технических ограничений между контроллером, моделькой и шаблоном нет. Т.е. из любого места есть доступ к чему угодно. Можно писать в жестком MVC стиле, можно в произвольном.
2. Название класса совпадает и с URL и с папками, что позволяет MVC, JS, CSS, JPG и т.д. разместить в одной физической папке. Можно располагать файлы в жестком MVC стиле, а можно групировать в папки по произвольным признакам.
3. Namespace один и тот же у всех классов одной коробки. В названии класса указаны все подпапки и файл класса. Есть алиасы (сокращения названий) для классов текущей и других коробок.
4. Инициализация классов происходит путем обращения к нему $this->Class(); или $this->Class->randomMethod();
3
SysBox / Установка
« Последний ответ от SysBox 03 Ноябрь 2017, 15:46:25 »
Закачиваем файлы на сервер.
Делаем какой-нибудь index.php, в нем пишем подобное:

require(__DIR__.'/../sysbox/Engine.php');
$Admin = \sysbox\engine\engine::getBox('admin');

Все. Через $Admin можно работать с SysBox.

SysBox не требует зависимостей и не конфликтует с любым сторонним кодом. По этому \sysbox\engine\engine::getBox('admin'); можно без проблем размещать в любом месте вашего кода.
\sysbox\engine\engine::getBox('admin'); выдает всегда один и тот же экземпляр коробки, по этому эту конструкцию можно без проблем запускать много раз подряд.
4
SysBox / Скачать
« Последний ответ от SysBox 03 Ноябрь 2017, 11:32:28 »
2017.11.15 Скачать
Страницы: [1]