인스타그램에 질려서 빌보드를 만들고 싶다(1)

8396 단어 PHP
PHP+SQLite3로 2ch 빌보드 만들기 채워주세요.참, 나는 지금까지 인생에서 논단을 만들어 본 적이 없다.한번 해 보세요.

방PHP


PHP7을 설치합니다.그 다음 판본은 전통이다.특히 5.4 계열 이하의 보안 지원도 끝나 상대가 될 수 없다.
맥이라면 이렇게 넣는 게 좋을 것 같아요.
brew tap homebrew/php
brew install php70 php70-gmp php70-intl php70-pcntl
Windows로 열심히 PHP를 만들면 솔직히 좀 미묘해요VirtualBoxVagrant 넣어보세요rlerdorf/php7dev 이런 거.
방법은 pixiv/intern2015w에 적혀 있는데, 잘 모르겠으면 이동해 보는 것이 좋다.
Linux에서... 먼저 하세요.

Composter 가입


Composer는 PHP 패키지의 종속성을 관리하는 도구입니다.php -r 'echo file_get_contents("https://getcomposer.org/composer.phar");' > ./composer; chmod +x ./composer 등 사전 다운로드가 좋다.

설계


  • 패키지 이름: zonuexe/inspire-bbs

  • 네임스페이스: InspireBBS

  • Windows가 아니면 좋겠습니다

  • 웹 서버: 번거로움내부 웹 서버만 있으면 됩니다

  • RDBMS: 귀찮고 귀찮아요.수중에 있는 것은 3.8.10.2이다.
  • 이렇게 하면 나중에 정식 발표할 때 변경할 수 있어요.

    그럼 해보세요.


    먼저 디렉토리부터 시작합니다.홈 디렉터리를 만들 수 있습니다.나는 $HOME/repo/php 이런 목록에서 하고 있다.
    cd inspire-bbs
    mkdir inspire-bbs
    git init
    touch README.md
    echo "## inspire BBS" > README.md
    touch .gitignore
    edit .gitignore
    
    git add .gitignore README.md
    git commit -m "Init repository"
    
    git remote add origin [email protected]:$USER/inspire-bbs.git
    git push origin master
    
    .gitignore 파일은 이렇게 하는 것이 가장 좋다.
    .gitignore
    /cache
    /phpunit.xml
    /vendor/*
    /.env
    /.idea
    /*.iml
    /.vagrant
    
    처음부터 GiitHub에 올려주세요.앞으로 한 명씩'여기git commit'라고 쓰지 말고 자신이 쉽게 이해할 수 있는 범위 내에서 해보세요.

    디렉토리 구조 생성하기


    이해하기 쉽게 이렇게 하자.
    % tree
    .
    ├── README.md
    ├── cache
    │   ├── db.sq3
    │   └── twig
    ├── public
    │   └── index.php
    └── src
        └── functions.php
    
    DB의 파일은 cache/db.sq3로 설정됩니다.템플릿 엔진은 선택Twig - The flexible, fast, and secure PHP template engine 때문에 그 디렉터리도 배치됩니다.

    PDO의 지퍼를 만들려고 합니다.


    DB는 하나만 있으면 되니까 수량db()을 마음대로 준비해 주세요.
    src/functions.php
    <?php
    /**
     * @author    USAMI Kenta
     * @copyright 2016 USAMI Kenta
     * @license   WTFPL
     */
    
    /**
     * @return \PDO
     */
    function db()
    {
        static $db;
    
        if (!$db) {
            $db = new \PDO(getenv('DB_DSN'), null, null, [PDO::ATTR_PERSISTENT => true]);
        }
    
        return $db;
    }
    

    Compooser로 포장 테스트


    우선 포장을 몇 개 넣어 보세요.PHP의 라이브러리는 Packagist부터 찾습니다.

  • vlucas/phpdotenv: 설정 파일을 쉽게 읽을 수 있는 대단한 녀석이야

  • twig/twig: 괜찮은 템플릿 엔진인 것 같아

  • twig/extensions: Twig 표준에 속하지 않는 기능을 추가한 패키지

  • filp/whoops: 멋지게 오류 표시
  • 조개껍질 같은 느낌으로 실행하세요.
    composer require vlucas/phpdotenv twig/twig twig/extensions
    composer require --dev filp/whoops
    
    Whoops는 개발 환경에서 편리하지만, 외부에 공개하면 취약성과 개인정보 유출 같은 일도 발생할 수 있으니 주의해야 한다.

    index.php 만들기


    그럼 제가 한번 해보겠습니다.
    public/index.php
    <?php
    /**
     * @author    USAMI Kenta
     * @copyright 2016 USAMI Kenta
     * @license   WTFPL
     */
    namespace InspireBBS;
    
    require_once dirname(__DIR__) . '/vendor/autoload.php';
    
    // エラーは漏らさず捕捉する
    error_reporting(E_ALL | E_STRICT);
    
    // カッコイイエラー画面を表示するための魔法の呪文
    $whoops = new \Whoops\Run;
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
    $whoops->register();
    
    echo "こんにちはこんにちは";
    
    PHP의 E_NOTICE를 터뜨린 녀석은 살 수 없으니 E_ALL | E_STRICT라고 쓰세요.길어서 쓸 수 있어요error_reporting(-1).

    서버 시작


    PHP를 시작하려면 아파치가 필요합니까?너는 서버가 될 거야!
    php -S localhost:3939 public/index.php
    
    명령줄에서 이 명령을 실행하면 PHP는 웹 서버가 됩니다.바로 내부 웹 서버입니다.로컬 개발만 하고 싶다면 아파치와nginx가 필요 없다.
    브라우저에서 열기http://localhost:3939/.

    이렇게 됐으면 좋겠다.

    잘못을 보다


    모처럼 멋진 오류 표시 도구를 넣었으니 오류를 발생시켜 보세요.
    안녕하세요. 아래에 쓰세요echo $foo;.

    참고로 묵인된 오류는 이런 느낌을 나타낸다.

    응, 이 정도면 충분하지만.특히 오류가 발생한 곳은 깊게 박혀 있어 이해하기 쉬운 부분에 큰 차이가 있다.

    오늘의 요약

  • PHP를 신선한 7
  • 에 넣기
  • Composier 삽입
  • 로컬 개발은 아파치 같은 거 필요 없어
  • Whoops 좋아요
  • 빌보드는 아직 그림자나 모양이 없고, 어렵게 설치한 트위그도 사용하지 않았다...오늘은 여기까지.
    안녕히 주무세요.
    다음 게시물: 인스타그램에 질려서 빌보드 하고 싶다(2)

    좋은 웹페이지 즐겨찾기