패키지의 파일 구성

6421 단어 BEAR.Sunday
디렉토리 구조
Packagist에 등록된 패키지는 표준 파일/디렉토리 구조가 어느 정도 있지만 작성자와 종속 프레임워크에 따라 미묘한 차이가 있을 수 있습니다.
표준적이고 CI용 설정이 완비된 포장 구성은?이 점에서 토론의 현재 구성을 소개하다.(Aura 프레임과 비슷한 구조BEAR.Sunday 사용)

패키지 폴더 이름
. (점) 구분자 {공급업체 이름}.{포장 이름}.아우라랑 똑같아요.
bin
PHP 실행 파일을 저장합니다.
srclibs,libsrc도 있다.src의 클래스 파일은 예외와 모조 등을 제외하고는 하위 디렉터리를 만들지 않고 평평하게 설정합니다.trait는 원칙적으로 2차 분사 코드를 제외한 코드를 사용하지 않는다.
testsbootstrap.php 파일을 tests 폴더에 넣습니다.phpunit.xml.dist를 프로젝트의 루트 페이지phpunit에 놓으면 파라미터가 없이 테스트를 할 수 있습니다.
namespace는 대응하는 src와 같습니다.그러면 가져올 필요가 없습니다use.Mock과 Stub은 모두 Fake의 접두사tests/Fake를 붙여서 폴더에 저장합니다.
docsdocs/demo에 프레젠테이션 코드가 설정되어 있습니다.다른 문서가 있으면 이 폴더에 놓으십시오.
LICENSE
MIT가 많은 것 같아요.파일 이름은 LICENSE이고 확장자는 없습니다.
CI/QA 설정 파일
phpunit.xml.dis
<phpunit bootstrap="tests/bootstrap.php">
    <testsuites>
        <testsuite>
            <directory suffix="Test.php">tests</directory>
        </testsuite>
    </testsuites>

    <logging>
        <log type="coverage-html" target="build/coverage"/>
        <log type="coverage-clover" target="build/logs/clover.xml"/>
        <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
    </logging>

    <filter>
        <whitelist>
            <directory suffix=".php">src</directory>
        </whitelist>
    </filter>
</phpunit>
.scrutinizer.yml
filter:
    paths: ["src/*"]
tools:
    external_code_coverage: true
    php_code_coverage:
        timeout: 1200
    php_sim: true
    php_mess_detector: true
    php_pdepend: true
    php_analyzer: true
    php_cpd: true
    php_mess_detector:
        enabled: true
        config:
            ruleset: ./phpmd.xml
    php_code_sniffer:
        enabled: true
        config:
            ruleset: ./phpcs.xml
.travis.yml
language: php

php:
  - 5.5
  - 5.6
  - hhvm
  - 7

install: travis_retry composer install --no-interaction --prefer-source

script:
 - if [ "$TRAVIS_PHP_VERSION" == "hhvm" ]; then phpunit; fi
 - if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then phpunit --coverage-text --coverage-clover=coverage.clover; fi

after_script:
 - wget https://scrutinizer-ci.com/ocular.phar
 - if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi
  • hhvm 덮어쓰기 값이 불안정합니다TRAVIS_PHP_VERSION.
  • scrutinizer의 점수는 10.0와 테스트 커버100%를 기준으로 한다.
  • 다른 것은 다음과 같은 서류가 있다.
  • .php_cs
  • build.xml
  • phpcs.xml
  • phpmd.xml
  • 참고 자료

  • compooser test에서 QA 도구 실행의phpmd.xml/phpcs.xml
  • 좋은 웹페이지 즐겨찾기