tencent cloud

Feedback

Last updated: 2022-03-14 15:53:57

    title: PHP - CODING Help Center
    pageTitle: PHP
    pagePrevTitle: Install Maven Dependency
    pagePrev: ci/depend/maven.html
    pageNextTitle: Incremental Code Convention Check
    pageNext: ci/lint/jenkins-git-diff.html
    alias: ci/depend/php.html


    There are two common extended PHP dependencies:

    • C extension: Install with pecl
    • PHP extension: Install with composer

    pecl

    You can install PHP extensions using the docker-php-ext-install or pecl command:

    pipeline {
    agent {
      docker {
        reuseNode 'true'
        registryUrl 'https://coding-public-docker.pkg.coding.net'
        image 'public/docker/php:8.0'
        // image 'public/docker/php:7.4' and 7.3, 7.2, 7.1, and 5.6
        args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker'
      }
    }
    stages {
      stage('Install dependency') {
        steps {
          // Method 1: Internal PHP extension
          // Possible values for ext-name:
          // bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp
          // hash iconv imap interbase intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo
          // pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell
          // readline recode reflection session shmop simplexml snmp soap sockets sodium spl standard
          // sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip
          sh 'apt-get update && apt-get install -y libbz2-dev'
          sh 'docker-php-ext-install bz2'
          sh 'php -i | grep bz2'
          // Method 2: Third-party pecl extension
          sh "pecl install imagick"
          sh 'docker-php-ext-enable imagick'
          sh 'php -i | grep imagick'
        }
      }
    }
    }
    

    Public composer repository

    As the public composer repository Packagist is located outside of China, users in mainland China should switch to the Tencent Cloud Mirror for fast access:

    composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
    composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
    # Restore default official source (outside China)
    # composer config -g --unset repos.packagist
    

    Private composer repository

    To use a private repository, you need to first retrieve the username and password.

    composer.json

    Go to the PHP project directory and set the repository URL:

    composer config repos.private-composer composer https://codes-farm-composer.pkg.coding.net/composer-demo/private-composer
    

    You can see the change in composer.json. Commit it to the code repository.

    auth.json

    Go to the PHP project directory and set the username and password for the repository:

    composer config http-basic.codes-farm-composer.pkg.coding.net pt03xe33nvww 0ad2d123456
    

    Ignore the auth.json generated and do not commit it to the code repository.

    Local installation

    Install the private package locally:

    composer require codes-farm/socialite-providers:0.3.0
    

    Then, commit composer.lock to the code repository.

    Continuous integration build

    Enter the username and password in the environment variables:

    pipeline {
    agent {
      docker {
        reuseNode 'true'
        registryUrl 'https://coding-public-docker.pkg.coding.net'
        image 'public/docker/php:8.0'
        args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker'
      }
    }
    stages {
      stage('Check out') {
        steps {
          checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], 
              userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])
        }
      }
      stage('Install dependency') {
        steps {
          sh "composer config http-basic.codes-farm-composer.pkg.coding.net ${CODING_ARTIFACTS_USERNAME} ${CODING_ARTIFACTS_PASSWORD}"
          sh "composer install"
        }
      }
    }
    }
    

    ==== 2021/06/18 ====

    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support