PHP 버전을 5.6에서 7.2로 올려서 개발해보면...

8109 단어 PHPPHP7.2

이 신청은 aratana Advent Calendar 201820일째 신청입니다.
저는 요즘 Smabra에 푹 빠진 필자입니다.주요 역할은 네스나 그 외에는 사용할 수 없다.
그렇다면 최근 새로 개발된 PHP 버전은 PHP5다.6에서 PHP7까지.업데이트
나는 당시에 열중했던 일, 편리했던 일을 정리하고 싶다.

왜 업그레이드 했어요?


지금까지 사용한 PHP5.6의 안전 지원 기간은 2018/12/31에 끝난다.1
이 시기에 시스템 PHP5를 1부터 개발하기 시작했다는 이유도 있다.6시리즈를 적용한 은혜는 지금이 아니기 때문에 업그레이드 개발을 결정했다.
그리고 개인적으로 PHP7 시스템으로 구현하고 싶어요(소곤소곤)

개요


  • 과거의 환경
  • PHP 5.6.30
  • composer 1.2.0
  • PHPUnit 4.8.27

  • 이번에 업데이트된 환경
  • PHP 7.2.9
  • composer 1.7.3
  • PHPUnit 7.4.4
  • PHP7.2과로 옮길 수 있어서 너무 좋아요.


    모델 지정 가능


    스타일을 지정하면 묘한 안도감이 생기는 건 필자뿐인가요?
    실제로 우리는 다음과 같은 내용을 채택하여 개발을 진행하였다!
  • 엄격한 검사 모드declare(strict_types=1);의 지정
  • 유형 성명의 기재
  • 실제로 채용한 후에 매우 고생스럽다고 느끼지 않았다.오히려 즐거웠어요.w
    Message.php
    <?php
    declare(strict_types=1);
    
    namespace Hoge;
    
    /**
     * Class Message
     * @package Hoge
     */
    class Message {
    
        /**
         * @var string
         */
        public $message = "";
    
        /**
         * @return string
         */
        public function get():string
        {
            return $this->message;
        }
    
        /**
         * @param $message
         */
        public function set(string $message):void
        {
            $this->message = $message;
        }
    }
    

    use 선언은 그룹을 나눌 수 있습니다


    소박하고 기쁜 곳 w
    Symfony와 같은 대형 프레임을 사용하는 것은 매우 어렵다.
    use Hoge\{
        Fuga\InterFace1,
        Fuga\Class1,
        Class2
    };
    

    개발 후 반한 곳


    PHPUnit의 클래스 이름


    평소와 같이 테스트 코드를 준비할 때 다음과 같은 오류가 발생했습니다.
    PHP Fatal error:  Class 'PHPUnit_Framework_TestCase' not found in /Users/hogehoge/fugafuga/tests/CommonTestCase.php on line 9
    
    조사를 해보면 PHPUnit의 클래스PHPUnit_Framework_TestCase가 버전 6.0에서 공간화되었다.2
    사용한 클래스를 명명 공간화PHPUnit\Framework\TestCase로 변경하여 테스트를 순조롭게 통과할 수 있습니다!
    MessageTest.php
    <?php
    declare(strict_types=1);
    
    namespace Hoge;
    
    /**
     * Class MessageTest
     * @package Hoge
     */
    class MessageTest extends \PHPUnit\Framework\TestCase
    {
        /**
         * @var Message
         */
        private $message;
    
        /**
         *
         */
        protected function setUp():void
        {
            parent::setUp();
            $this->message = new Message();
        }
    
        /**
         *
         */
        protected function tearDown():void
        {
            parent::tearDown();
        }
    
        /**
         *
         */
        public function testGetter():void
        {
            $message = "Getter Test.";
            $this->message->message = $message;
            $this->assertEquals($message, $this->message->get());
        }
    
        /**
         *
         */
        public function testSetter():void
        {
            $message = "Setter Test.";
            $this->message->set($message);
            $this->assertEquals($message, $this->message->message);
        }
    }
    

    최후


    PHP7.처음 2학과로 옮겨 능숙하게 사용하지 못하는 느낌을 지울 수는 없지만, 지금까지와 거의 달라진 것이 없어 원활한 개발이 가능했다.지금은...
    그중에 저장 시스템도 PHP7 시스템으로...(작은 소리)
    그때 나는 PHP5와 7시리즈의 성능 차이 등의 데이터를 수집하고 싶었다.
    그럼 PHP 생활 잘 하세요!!
    참조PHP: Supported Versions
    참조PHP 테스트 프레임워크 발표 "PHPUnit 6.0"

    좋은 웹페이지 즐겨찾기