From 07c12ccdb43b8c3565aa71b651418591ac54c331 Mon Sep 17 00:00:00 2001 From: Alisa Date: Thu, 4 Apr 2024 01:38:29 +0300 Subject: [PATCH 1/3] hw8 --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..723ef36f4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file From ea9d0eee6db9406bf4c0bd2e512b18a358a486ca Mon Sep 17 00:00:00 2001 From: Alisa Date: Thu, 4 Apr 2024 16:00:57 +0300 Subject: [PATCH 2/3] hw6 --- .gitignore | 2 +- README.md | 41 ++++++++++- app/.gitignore | 2 + app/docker-compose.yaml | 33 +++++++++ app/fpm/Dockerfile | 10 +++ app/result/2024-04-04_15-30-02.png | Bin 0 -> 63492 bytes app/result/2024-04-04_15-30-24.png | Bin 0 -> 53835 bytes app/www/.gitignore | 2 + app/www/application.local/app.php | 14 ++++ app/www/application.local/config/config.ini | 2 + app/www/application.local/src/App.php | 45 ++++++++++++ app/www/application.local/src/Client.php | 36 ++++++++++ app/www/application.local/src/Server.php | 35 +++++++++ app/www/application.local/src/Socket.php | 74 ++++++++++++++++++++ app/www/composer.json | 19 +++++ app/www/composer.lock | 21 ++++++ 16 files changed, 334 insertions(+), 2 deletions(-) create mode 100644 app/.gitignore create mode 100644 app/docker-compose.yaml create mode 100644 app/fpm/Dockerfile create mode 100644 app/result/2024-04-04_15-30-02.png create mode 100644 app/result/2024-04-04_15-30-24.png create mode 100644 app/www/.gitignore create mode 100644 app/www/application.local/app.php create mode 100644 app/www/application.local/config/config.ini create mode 100644 app/www/application.local/src/App.php create mode 100644 app/www/application.local/src/Client.php create mode 100644 app/www/application.local/src/Server.php create mode 100644 app/www/application.local/src/Socket.php create mode 100644 app/www/composer.json create mode 100644 app/www/composer.lock diff --git a/.gitignore b/.gitignore index 723ef36f4..62c893550 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -.idea \ No newline at end of file +.idea/ \ No newline at end of file diff --git a/README.md b/README.md index e16b2a49b..90be64313 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,42 @@ # PHP_2023 -https://otus.ru/lessons/razrabotchik-php/?utm_source=github&utm_medium=free&utm_campaign=otus +###Описание/Пошаговая инструкция выполнения домашнего задания: + +Консольный чат на сокетах +Создать логику, размещаемую в двух php-контейнерах (server и client), объединённых общим volume. +Скрипты запускаются в режиме прослушивания STDIN и обмениваются друг с другом вводимыми сообщениями через unix-сокеты. + +- сервер поднимается всегда первым +- клиент ожидает ввод из STDIN и отправляет сообщения серверу +- сервер выводит полученное сообщение в STDOUT и отправляет клиенту подтверждение (например, "Received 24 bytes") +- клиент выводит полученное подтверждение в STDOUT и начинает новую итерацию цикла + +###Критерии оценки: +1. Конструкции @ и die неприемлемы. Вместо них используйте исключения +2. Принимается только Unix-сокет +3. Код здесь и далее мы пишем с применением ООП +4. Код здесь и далее должен быть конфигурируем через файлы настроек типа config.ini +5. Обратите внимание на паттерн FrontController (он же - единая точка доступа). Все приложения, которые Вы создаёте здесь и далее должны вызываться через один файл, в котором есть ТОЛЬКО +6. Точка входа - app.php +7. Сервер и клиент запускаются командами +php app.php server +php app.php client +В app.php только строки +require_once('/path/to/composer/autoload.php'); +try { +$app = new App(); +$app->run(); +} +catch(Exception $e){ +} +8. Логика чтения конфигураций и работы с сокетами - только в классах. + + + +Порядок действий для запуска app + +1. docker-compose up --build -d +2. docker-compose run server composer install +3. docker-compose run server php app.php server +4. docker-compose run server php app.php client +5. exit \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 000000000..13d4ac581 --- /dev/null +++ b/app/.gitignore @@ -0,0 +1,2 @@ +.env +.idea/ \ No newline at end of file diff --git a/app/docker-compose.yaml b/app/docker-compose.yaml new file mode 100644 index 000000000..1d53ebbb1 --- /dev/null +++ b/app/docker-compose.yaml @@ -0,0 +1,33 @@ +version: "3" + +services: + server: + build: + context: ./fpm + dockerfile: Dockerfile + image: hw6/server + container_name: server + volumes: + - ./www:/var/www + - ./socket:/var/www/application.local/socket/ + networks: + - app-network + + client: + build: + context: ./fpm + dockerfile: Dockerfile + image: hw6/client + container_name: client + volumes: + - ./www:/var/www + - ./socket:/var/www/application.local/socket/ + networks: + - app-network + +networks: + app-network: + driver: bridge + +volumes: + socket: \ No newline at end of file diff --git a/app/fpm/Dockerfile b/app/fpm/Dockerfile new file mode 100644 index 000000000..671af5b45 --- /dev/null +++ b/app/fpm/Dockerfile @@ -0,0 +1,10 @@ +FROM php:8.2-fpm + +RUN apt-get update \ + && apt-get install -y \ + && docker-php-ext-install sockets \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +WORKDIR /var/www/application.local + +CMD ["php-fpm"] diff --git a/app/result/2024-04-04_15-30-02.png b/app/result/2024-04-04_15-30-02.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e95a9e034f78e404452049757fcade0286fdac GIT binary patch literal 63492 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

|xr8|IdUO6r6qD2rZWA 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 IqI!P+3xrLe^Z)<= literal 0 HcmV?d00001 diff --git a/app/www/.gitignore b/app/www/.gitignore new file mode 100644 index 000000000..1d4eb2cc8 --- /dev/null +++ b/app/www/.gitignore @@ -0,0 +1,2 @@ +.idea/ +/vendor \ No newline at end of file diff --git a/app/www/application.local/app.php b/app/www/application.local/app.php new file mode 100644 index 000000000..6bb800956 --- /dev/null +++ b/app/www/application.local/app.php @@ -0,0 +1,14 @@ +run(); +} catch (Exception $e) { + echo $e->getMessage(); +} diff --git a/app/www/application.local/config/config.ini b/app/www/application.local/config/config.ini new file mode 100644 index 000000000..846fd828d --- /dev/null +++ b/app/www/application.local/config/config.ini @@ -0,0 +1,2 @@ +[socket] +file = /var/www/application.local/socket/socket_hw6.sock \ No newline at end of file diff --git a/app/www/application.local/src/App.php b/app/www/application.local/src/App.php new file mode 100644 index 000000000..aabb3227f --- /dev/null +++ b/app/www/application.local/src/App.php @@ -0,0 +1,45 @@ +mode = $argv[1] ?? ''; + + if (!in_array($this->mode, ['server', 'client'])) { + throw new InvalidArgumentException('Invalid mode. Use "server" or "client".'); + } + } + + public function run() + { + $config = parse_ini_file('config/config.ini', true); + $file = $config['socket']['file']; + + $this->socket = new Socket($file); + + switch ($this->mode) { + case 'server': + $server = new Server($this->socket); + $server->start(); + break; + case 'client': + $client = new Client($this->socket); + $client->start(); + break; + } + } +} diff --git a/app/www/application.local/src/Client.php b/app/www/application.local/src/Client.php new file mode 100644 index 000000000..1c811ab53 --- /dev/null +++ b/app/www/application.local/src/Client.php @@ -0,0 +1,36 @@ +socket = $socket; + } + + public function start() + { + $this->socket->connect(); + + echo "To exit, type 'exit'\n"; + + while (true) { + $message = readline("Enter message: "); + $this->socket->write($message); + + if ($message === 'exit') { + $this->socket->write($message); + $this->socket->close(); + break; + } + + $confirmation = $this->socket->read(); + echo "Server confirmation: {$confirmation}\n"; + } + } +} diff --git a/app/www/application.local/src/Server.php b/app/www/application.local/src/Server.php new file mode 100644 index 000000000..25e1bf861 --- /dev/null +++ b/app/www/application.local/src/Server.php @@ -0,0 +1,35 @@ +socket = $socket; + } + + public function start() + { + $this->socket->bind(); + $this->socket->listen(); + $this->socket->accept(); + + while ($this->isRunning) { + $message = $this->socket->receive(); + + if ($message === 'exit') { + $this->isRunning = false; + $this->socket->close(); + } else { + echo "Received: {$message}\n"; + $this->socket->write("Received " . strlen($message) . " bytes"); + } + } + } +} diff --git a/app/www/application.local/src/Socket.php b/app/www/application.local/src/Socket.php new file mode 100644 index 000000000..a583e9512 --- /dev/null +++ b/app/www/application.local/src/Socket.php @@ -0,0 +1,74 @@ +socket = socket_create(AF_UNIX, SOCK_STREAM, 0); + $this->path = $path; + } + + public function read() + { + $result = socket_read($this->socket, 2048); + + if ($result === false) { + $error = socket_last_error(); + echo "Socket read error: " . socket_strerror($error); + $this->close(); + } + return $result; + } + + public function write($data) + { + socket_write($this->socket, $data, strlen($data)); + } + + public function listen() + { + socket_listen($this->socket, self::BACKLOG_SIZE); + } + + public function accept() + { + $_socket = socket_accept($this->socket); + + if ($_socket === false) { + $error = socket_last_error(); + throw new \RuntimeException("Socket accept error: " . socket_strerror($error)); + } + + $this->socket = $_socket; + } + + public function connect() + { + socket_connect($this->socket, $this->path); + } + + public function bind() + { + socket_bind($this->socket, $this->path); + } + + public function close() + { + socket_close($this->socket); + } + + public function receive(): string + { + socket_recv($this->socket, $message, self::MAX_SIZE_MESSAGE, 0); + return $message ?? ''; + } +} diff --git a/app/www/composer.json b/app/www/composer.json new file mode 100644 index 000000000..4c0948b1a --- /dev/null +++ b/app/www/composer.json @@ -0,0 +1,19 @@ +{ + "name": "alisa/hw6", + "type": "project", + "autoload": { + "psr-4": { + "App\\": "application.local/src/" + } + }, + "authors": [ + { + "name": "Alisa", + "email": "kolosovaalisa@gmail.com" + } + ], + "require": { + "ext-sockets": "*", + "ext-readline": "*" + } +} diff --git a/app/www/composer.lock b/app/www/composer.lock new file mode 100644 index 000000000..cb2f0f6cd --- /dev/null +++ b/app/www/composer.lock @@ -0,0 +1,21 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "f600857e61aafc6f1435264899138f9c", + "packages": [], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "ext-sockets": "*", + "ext-readline": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} From e0635f2505c89de73049b01d9298d93bedf4edcf Mon Sep 17 00:00:00 2001 From: Alisa Date: Fri, 5 Apr 2024 12:56:58 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D1=87=D1=82=D0=BE=D0=B1=D1=8B=20=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B5=D1=80=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=D0=BB=D1=81=D1=8F=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B5=20=D1=81=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=B9=D0=BD?= =?UTF-8?q?=D0=B5=D1=80=D0=BE=D0=BC=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B0=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20CMD=20["php",=20"-S",=20"0.0.0.0:8000",=20"-t",=20"/va?= =?UTF-8?q?r/www/application.local"]=20=D0=B2=20Dockerfile,=20=D1=82=D0=B0?= =?UTF-8?q?=D0=BA=D0=B6=D0=B5=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=B3=D0=BE=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=BB=D0=B0=20=20=20=20=20command:=20php=20/var/www/appl?= =?UTF-8?q?ication.local/app.php=20server=20=D0=B2=20docker-compose.yaml?= =?UTF-8?q?=20,=20=D0=B2=20=D0=BE=D0=B1=D0=BE=D0=B8=D1=85=20=D1=81=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D0=B0=D1=8F=D1=85=20=D0=BE=D0=B4=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=D0=B0=D1=8F=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- app/.gitignore | 2 -- app/fpm/Dockerfile | 10 ---------- hw6/.gitignore | 1 + hw6/cli/Dockerfile | 17 +++++++++++++++++ {app => hw6}/docker-compose.yaml | 7 ++++--- {app => hw6}/result/2024-04-04_15-30-02.png | Bin {app => hw6}/result/2024-04-04_15-30-24.png | Bin {app => hw6}/www/.gitignore | 1 - {app => hw6}/www/application.local/app.php | 0 .../www/application.local/config/config.ini | 0 {app => hw6}/www/application.local/src/App.php | 0 .../www/application.local/src/Client.php | 0 .../www/application.local/src/Server.php | 0 .../www/application.local/src/Socket.php | 0 {app => hw6}/www/composer.json | 0 {app => hw6}/www/composer.lock | 0 17 files changed, 25 insertions(+), 17 deletions(-) delete mode 100644 app/.gitignore delete mode 100644 app/fpm/Dockerfile create mode 100644 hw6/.gitignore create mode 100644 hw6/cli/Dockerfile rename {app => hw6}/docker-compose.yaml (82%) rename {app => hw6}/result/2024-04-04_15-30-02.png (100%) rename {app => hw6}/result/2024-04-04_15-30-24.png (100%) rename {app => hw6}/www/.gitignore (50%) rename {app => hw6}/www/application.local/app.php (100%) rename {app => hw6}/www/application.local/config/config.ini (100%) rename {app => hw6}/www/application.local/src/App.php (100%) rename {app => hw6}/www/application.local/src/Client.php (100%) rename {app => hw6}/www/application.local/src/Server.php (100%) rename {app => hw6}/www/application.local/src/Socket.php (100%) rename {app => hw6}/www/composer.json (100%) rename {app => hw6}/www/composer.lock (100%) diff --git a/README.md b/README.md index 90be64313..7e5be472c 100644 --- a/README.md +++ b/README.md @@ -39,4 +39,6 @@ catch(Exception $e){ 2. docker-compose run server composer install 3. docker-compose run server php app.php server 4. docker-compose run server php app.php client -5. exit \ No newline at end of file +5. exit + + diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 13d4ac581..000000000 --- a/app/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.env -.idea/ \ No newline at end of file diff --git a/app/fpm/Dockerfile b/app/fpm/Dockerfile deleted file mode 100644 index 671af5b45..000000000 --- a/app/fpm/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM php:8.2-fpm - -RUN apt-get update \ - && apt-get install -y \ - && docker-php-ext-install sockets \ - && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer - -WORKDIR /var/www/application.local - -CMD ["php-fpm"] diff --git a/hw6/.gitignore b/hw6/.gitignore new file mode 100644 index 000000000..2eea525d8 --- /dev/null +++ b/hw6/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/hw6/cli/Dockerfile b/hw6/cli/Dockerfile new file mode 100644 index 000000000..0ba3f23ae --- /dev/null +++ b/hw6/cli/Dockerfile @@ -0,0 +1,17 @@ +FROM php:8.2-cli + +RUN apt-get update \ + && apt-get install -y \ + libxml2-dev \ + libssl-dev \ + && docker-php-ext-install sockets + +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +COPY . /var/www/application.local + +WORKDIR /var/www/application.local + +# Команда для запуска сервера при старте контейнера +#CMD ["php", "-S", "0.0.0.0:8000", "-t", "/var/www/application.local"] + diff --git a/app/docker-compose.yaml b/hw6/docker-compose.yaml similarity index 82% rename from app/docker-compose.yaml rename to hw6/docker-compose.yaml index 1d53ebbb1..83d6c0e7f 100644 --- a/app/docker-compose.yaml +++ b/hw6/docker-compose.yaml @@ -3,7 +3,7 @@ version: "3" services: server: build: - context: ./fpm + context: ./cli dockerfile: Dockerfile image: hw6/server container_name: server @@ -12,10 +12,11 @@ services: - ./socket:/var/www/application.local/socket/ networks: - app-network + command: php /var/www/application.local/app.php server client: build: - context: ./fpm + context: ./cli dockerfile: Dockerfile image: hw6/client container_name: client @@ -30,4 +31,4 @@ networks: driver: bridge volumes: - socket: \ No newline at end of file + socket: diff --git a/app/result/2024-04-04_15-30-02.png b/hw6/result/2024-04-04_15-30-02.png similarity index 100% rename from app/result/2024-04-04_15-30-02.png rename to hw6/result/2024-04-04_15-30-02.png diff --git a/app/result/2024-04-04_15-30-24.png b/hw6/result/2024-04-04_15-30-24.png similarity index 100% rename from app/result/2024-04-04_15-30-24.png rename to hw6/result/2024-04-04_15-30-24.png diff --git a/app/www/.gitignore b/hw6/www/.gitignore similarity index 50% rename from app/www/.gitignore rename to hw6/www/.gitignore index 1d4eb2cc8..49ce3c193 100644 --- a/app/www/.gitignore +++ b/hw6/www/.gitignore @@ -1,2 +1 @@ -.idea/ /vendor \ No newline at end of file diff --git a/app/www/application.local/app.php b/hw6/www/application.local/app.php similarity index 100% rename from app/www/application.local/app.php rename to hw6/www/application.local/app.php diff --git a/app/www/application.local/config/config.ini b/hw6/www/application.local/config/config.ini similarity index 100% rename from app/www/application.local/config/config.ini rename to hw6/www/application.local/config/config.ini diff --git a/app/www/application.local/src/App.php b/hw6/www/application.local/src/App.php similarity index 100% rename from app/www/application.local/src/App.php rename to hw6/www/application.local/src/App.php diff --git a/app/www/application.local/src/Client.php b/hw6/www/application.local/src/Client.php similarity index 100% rename from app/www/application.local/src/Client.php rename to hw6/www/application.local/src/Client.php diff --git a/app/www/application.local/src/Server.php b/hw6/www/application.local/src/Server.php similarity index 100% rename from app/www/application.local/src/Server.php rename to hw6/www/application.local/src/Server.php diff --git a/app/www/application.local/src/Socket.php b/hw6/www/application.local/src/Socket.php similarity index 100% rename from app/www/application.local/src/Socket.php rename to hw6/www/application.local/src/Socket.php diff --git a/app/www/composer.json b/hw6/www/composer.json similarity index 100% rename from app/www/composer.json rename to hw6/www/composer.json diff --git a/app/www/composer.lock b/hw6/www/composer.lock similarity index 100% rename from app/www/composer.lock rename to hw6/www/composer.lock