дата: 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 , когда сможете быть такими же счастливыми, как мы.