Giter Site home page Giter Site logo

chun94chen / phpsldt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ensoelectric/phpsldt

0.0 0.0 0.0 56 KB

REST API for working with single-line diagrams of electric power system in accordance with GOST 21.613-2014 (Appendix A, Figure A.4)

License: MIT License

PHP 100.00%

phpsldt's Introduction

phpSLDt

RESTful Web Service для работы с однолинейными электрическими схемами групповых сетей по ГОСТ 21.613-2014 (Приложение А, Рисунок А.4 "Пример выполнения принципиальной схемы групповой сети при использовании систем автоматизированного проектирования или информационного моделирования зданий, сооружений").

Requirements

  • Mariadb 10.3 or higher
  • PHP 7.2 or higher,
  • Unzip,
  • PHP extensions:
    • pdo_mysql
    • curl
    • gd

Getting Started

Эти инструкции помогут вам запустить копию проекта для разработки и тестирования. Заметки о том, как развернуть проект в действующей системе, см. в разделе Deployment.

Prerequisites

Для установки phpSLDt вам потребуется:

  • Web-сервер с поддержкой PHP,
  • СУБД MariaDB,
  • Пакетный менеджер Composer,
  • Система управления версиями git.

В OpenBSD 7.0 установка и настройка всего необходимого может выглядеть следующим образом.

Установка MariaDB

# pkg_add mariadb-server
# rcctl enable mysqld
# mysql_install_db
# rcctl start mysqld

Затем

# mysql_secure_installation

Установка PHP с необходимыми расширениями

# pkg_add php php-pdo_mysql php-curl php-gd

В файле /etc/php-7.4.iniраскоментируйте или добавьте следующие строки

extension=gd
extension=curl
extension=pdo_mysql

После чего

# rcctl enable php74_fpm
# rcctl start php74_fpm

Настройка Web-сервера httpd

Отредактируйте или создайте /etc/httpd.conf

# [ SERVERS ]
server "default" {
    listen on * port 80
    root "/htdocs"
    directory { no auto index }
    
    location "*.php" {
    	fastcgi socket "/run/php-fpm.sock"
    }
    
    location match "phpSLDt/api/(.*)" {
    	request rewrite "/phpSLDt/index.php?endpoint=%1&$QUERY_STRING"
    }
}

# [ TYPES ]
types {
    include "/usr/share/misc/mime.types"
}

Затем выполните

# rcctl enable httpd
# rcctl start httpd
httpd(ok)

Установка Composer, Git и Unzip

# pkg_add composer git unzip

Installing

Клонируем проект phpSLDt

# cd /var/www/htdocs
# git clone https://github.com/ensoelectric/phpSLDt.git phpSLDt
# cd phpSLDt

Создаем базу данных и добавляем пользователей

# mysql -uroot -p < install.sql
Enter password:
#

Устанавливаем зависимости

# composer update

Задаем имя пользователя и пароль в секции development файлa phinx.php. Запускаем миграции.

# ./vendor/bin/phinx migrate -e development

Заполняем таблицы тестовыми данными

# ./vendor/bin/phinx seed:run -e development

Добавляем пользователей в БД

# mysql -uroot -p < users.sql
Enter password:

Running the tests

# ./vendor/bin/codecept run
Codeception PHP Testing Framework v4.1.29
Powered by PHPUnit 9.5.13 by Sebastian Bergmann and contributors.

Api Tests (10)
✔ CORSCest: Get response to preflight request cors (0.05s)
✔ DiagramsCest: Get allow methods test (0.09s)
✔ DiagramsCest: Set accept header test (0.07s)
✔ DiagramsCest: Get all diagrams test (0.09s)
✔ DiagramsCest: Get the diagram test (0.03s)
✔ DiagramsCest: Not found diagram test (0.05s)
✔ DiagramsCest: Create new diagram precondition failed test (0.05s)
✔ DiagramsCest: Create new diagram unprocessable test (0.02s)
✔ DiagramsCest: Create new diagram test (0.04s)
✔ DiagramsCest: Update diagram test (0.03s)


Time: 00:00.620, Memory: 12.00 MB

OK (10 tests, 35 assertions)

USAGE

API описано в файле openapi_phpSLDt.yaml в форме OpenAPI Specification. Импортируйте данный файл, например, в postman или swagger.

Deployment

  • Обязательно настройте HTTPS.
  • Удалите пользователей по-умолчанию и создайте новых (см. users.sql)

Built With

Versioning

Стараюсь придерживаться cемантического версионирования.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

phpsldt's People

Contributors

ensoelectric avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.