дата: 2018-8-01 14:22:17 Название: swift | Интерпретация исходного кода Серия I: Это так сложно! Как демо-версия swift может сломаться, если она не может работать? Описание: Прочитайте исходный код Soft Framework, первый шаг swift, и разработайте среду
Маленькие приятели чувствуют, когда они впервые вступают в контакт со Свифтом Это немного напряженно. Более интуитивно Жестко Команда разработчиков не одобрила. Сложно Таким образом, swift-код реализован в php , и PHP является Лучшим языком в мире Swift – код легко читается.
Команда разработчиков будет использовать Серию интерпретаций исходного кода Блог, подробно прочитайте swift. Мы верим, что это будет расслабляющее путешествие.
Интерпретация исходного кода Swift Серия 1: Как трудно! Как демо-версия swift может сломаться без запуска?
Быстрое прочтение этой статьи:
- Я не пересказываю суть окружающей среды: изучение и использование swift требует подготовки этих Базовых знаний .
- Докер: Настройка мягкой среды
- Docker-compose: Создание дополнительных сервисов
- Использование composer для управления пакетами: повседневная жизнь команд разработчиков
Я не несу ответственность за окружающую среду.
На самом деле это не горшок свифта, это горшок окружающей среды. В официальном документе swift содержатся довольно подробные инструкции по экологическому строительству, если оно не увенчалось успехом:
- Рекомендуемой операционной средой swoole является linux. Освоили ли вы некоторые основные концепции и операции linux?
- Swool работает как форма расширения PHP. Знаете ли вы некоторые основные концепции и установку расширения PHP?
- Swift использует composer для управления пакетами. Освоили ли вы некоторые основные понятия и операции композитора?
- Используя swift для разработки серверных приложений, вы овладели некоторыми базовыми знаниями о сервере (четырехуровневый сетевой протокол tcp/IP, доменное имя IP-порта и т.д.)
Изучение и использование swift требует подготовки этих Базовых знаний .
докер
Итак, как быстро подобрать среду разработки? Ответ таков: докер !
Начать работу с докером проще, чем ожидалось. Команда разработчиков предоставляет официальный образ swift/swift. Подробные сведения об изображении включены в файл настройки проекта swift, извлеченный из раздела, в котором настраивается swool:
# Swoole extension RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz \ && mkdir -p swoole \ && tar -xf swoole.tar.gz -C swoole --strip-components=1 \ && rm swoole.tar.gz \ && ( \ cd swoole \ && phpize \ && ./configure --enable-async-redis --enable-mysqlnd --enable-openssl --enable-http2 \ && make -j$(nproc) \ && make install \ ) \ && rm -r swoole \ && docker-php-ext-enable swoole
Если вы еще не освоили конфигурацию среды, которую необходимо запустить swool, вы можете обратиться к исходному коду этого файла dockerfile.
Конечно, для простоты разработки нам может потребоваться создать различные среды, например, указать разные версии PHP, использовать разные версии swool, настроить ускорение китайских изображений и т.д. Или обратиться к файлу docker в разделе gitee.com/daygo/docker.
FROM php:7.2.5-cli-alpine3.7 # FROM php:7.1.13-cli-alpine3.4 LABEL maintainer="[email protected]" RUN echo -e "http://mirrors.ustc.edu.cn/alpine/v3.7/main\nhttp://mirrors.ustc.edu.cn/alpine/v3.7/community" > /etc/apk/repositories && \ apk update RUN apk add tzdata && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone RUN apk add $PHPIZE_DEPS # docker-php-ext RUN docker-php-ext-install bcmath mysqli pcntl pdo_mysql # pecl # http://pecl.php.net/package/mongodb RUN curl -O http://pecl.php.net/get/redis-4.0.2.tgz && \ pecl install redis-4.0.2.tgz && \ docker-php-ext-enable redis RUN curl -O http://pecl.php.net/get/mongodb-1.4.3.tgz && \ apk add openssl-dev && \ pecl install mongodb-1.4.3.tgz && \ docker-php-ext-enable mongodb # swoole RUN curl -O https://gitee.com/swoole/swoole/repository/archive/v4.0.3.zip && unzip v4.0.3.zip && \ apk add linux-headers openssl-dev nghttp2-dev hiredis-dev && \ cd swoole && \ phpize && \ ./configure --enable-coroutine --enable-openssl --enable-async-redis --enable-http2 && make && make install && \ docker-php-ext-enable swoole && \ rm -rf v4.0.3.zip swoole
Ps: Файл dockerfile здесь использует Alpine Linux в качестве базового изображения размером менее 10 м. Это очень простой дистрибутив Linux. Рекомендуется попробовать. Он использует внутренние источники и gitee для ускорения.
докер-сочинение
Здесь мы имеем работающую среду swift, выполняемую в соответствии с инструкциями в главе “Запуск службы документов”. php bin/swoft start
Вы можете запустить демо-версию swoft.
Если нам нужны дополнительные сервисы, mysql, redis, даже предварительно созданные nginx, docker-compose могут нам помочь. docker-compose используется для организации (управления) каждой из наших служб docker. Например, gitee.com/daygo/docker:
nginx: build: context: nginx dockerfile: Dockerfile volumes: - ../:/var/www - ./logs/nginx/:/var/log/nginx links: - swoft ports: - "80:80" - "443:443" swoft: # container_name: swoft image: swoft/swoft volumes: - ../:/var/www links: - mysql - redis ports: - "8001:8001" - "9501:9501" working_dir: /var/www/swoole/swoft stdin_open: true command: php -a tty: true - redis mysql: build: context: mysql dockerfile: Dockerfile volumes: - ./data/mysql:/var/lib/mysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: root redis: build: context: redis dockerfile: Dockerfile volumes: - ./data/redis:/data - ./logs/redis:/var/log/redis ports: - "6379:6379"
Здесь мы запустили четыре сервиса: nginx/swift/MySQL/redis:
ссылки
Связь между службами, такими как MySQL и redis, может использоваться в swiftmysql
Выступать в качествехоста
Доступа к службам mysqlпорты
Отображение портовтома
Монтаж документов
Зная, что делают эти теги, вы можете понять и использовать docker-compose
Управление пакетами с помощью composer
Используйте git clone
После загрузки исходного кода swift вам необходимо использовать его composer install
Установка платформы swift. До этого swift произвел разделение компонентов для дальнейшего разделения и упрощения использования фреймворка. Обычные пользователи редко изменяют его. установка композитора
Установлена платформа swift, но команда разработчиков будет часто обновлять платформу swoft, а затем проверять ее в демонстрационном проекте swoft. Как это достигается?
Ответ заключается в использовании функции composer репозитории
, непосредственно введенной в эту базу кода:
{ "name": "swoft/swoft", "type": "project", "keywords": [ "php", "swoole", "swoft" ], "description": "Modern High performance AOP and Coroutine PHP Framework, base on Swoole 2", "license": "Apache-2.0", "require": { "php": ">=7.0", "ext-swoole": ">=2.1", "swoft/framework": "^1.0", "swoft/rpc": "^1.0", "swoft/rpc-server": "^1.0", "swoft/rpc-client": "^1.0", "swoft/http-server": "^1.0", "swoft/http-client": "^1.0", "swoft/websocket-server": "^1.0", "swoft/task": "^1.0", "swoft/http-message": "^1.0", "swoft/view": "^1.0", "swoft/db": "^1.1", "swoft/cache": "^1.0", "swoft/redis": "^1.0", "swoft/console": "^1.0", "swoft/devtool": "^1.0", "swoft/session": "^1.0", "swoft/i18n": "^1.0", "swoft/process": "^1.0", "swoft/memory": "^1.0", "swoft/service-governance": "^1.0" }, "autoload": { "psr-4": { "App\": "app/" }, "files": [ "app/Swoft.php" ] }, "autoload-dev": { "psr-4": { "Swoft\Test\": "test/" } }, "scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "test": "./vendor/bin/phpunit -c phpunit.xml", "cs-fix": "./vendor/bin/php-cs-fixer fix $1" }, "repositories": [ { "Type": "path", //Modify here "url": "../swoft-component" } ] }
Я привык удалять его. требуется-dev
Вам предстоит настроить пакет и выбрать локальную глобальную установку.
Написано в конце
Надеюсь, вы сможете увидеть домашнюю страницу демо-версии swift swift
, когда сможете быть такими же счастливыми, как мы.