REST API response format based on some of the best practices
1. Устанавливаем xdebug; | |
2. В php.ini включаем xdebug и настраиваем удаленное подключение: | |
zend_extension="/usr/lib64/php/modules/xdebug.so" | |
xdebug.profiler_enable = 0 | |
xdebug.remote_enable = 1 | |
xdebug.remote_host = 127.0.0.1 #именно 127.0.0.1, а не localhost, иначе может не сработать | |
xdebug.remote_port=9000 #смотрим свободный, через netstat -tnlp | grep 900 | |
xdebug.remote_handler=dbgp | |
xdebug.idekey=PHPSTORM #ключ по желанию |
FROM ubuntu:trusty | |
RUN \ | |
apt-get update \ | |
&& apt-get -y install gettext-base \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* | |
ENV VALUE=foo | |
ENV VALUE1=boo | |
COPY config.txt source_config.txt |
Репозиторий - это слой абстракции, инкапсулирующий в себе всё, что относится к способу хранения данных. Назначение: Разделение бизнес-логики от деталей реализации слоя доступа к данным.
Паттерн Репозиторий стал популярным благодаря DDD (Domain Driven Design). В противоположность к Database Driven Design в DDD разработка начинается с проектирования бизнес логики, принимая во внимание только особенности предметной области и игнорируя все, что связано с особенностями базы данных или других способов хранения данных. Способ хранения бизнес объектов реализуется во вторую очередь.
Применение данного паттерна не предполагает создание только одного объекта репозитория во всем приложении. Хорошей практикой считается создание отдельных репозиториев для каждого бизнес-объекта или контекста, например: OrdersRepository, UsersRepository, AdminRepository.
<?php | |
function progress_bar($done, $total, $info="", $width=50) { | |
$perc = round(($done * 100) / $total); | |
$bar = round(($width * $perc) / 100); | |
return sprintf("%s%%[%s>%s]%s\r", $perc, str_repeat("=", $bar), str_repeat(" ", $width-$bar), $info); | |
} |