PHP5.6のレガシーな環境でLaravelと同じような開発をするためのcomposer設定

PHP5.6のレガシーな環境でLaravelと同じように開発をする

10年前に作られたようなPHPのサイトのお問い合わせを追加したり、
管理画面を作ったりというお仕事もしています。

前提としてはPHP5系のサポートは終わっているのでセキュリティ的なところは何も言えません。
ただサーバ移管はお金が高くでできないけどシステムをサクッと作ってくださいという依頼はたくさんあります。

そこで少しでも楽に開発ができるように5.6でもLaravelと同じように開発できる最低限のComposer設定をまとめました。
各モジュールの詳細な利用方法は各Githubにてご確認ください。

Composer設定


{
  "autoload": {
    "psr-4": {
      "eftec\\": "vendor/eftec/"
    }
  },
  "require": {
    "vlucas/valitron": "1.4.7",
    "eftec/bladeone": "2.4",
    "swiftmailer/swiftmailer": "^5.4",
    "monolog/monolog": "^1.25"
  }
}

$ composer install

Composerパッケージの概要

vlucas/valitron

バリデーションバッケージ。
Laravelと同じようにルールを決めてメッセージのラベルを設定するだけ。
https://github.com/vlucas/valitron

ソース例


    $v = new Valitron\Validator($_POST);
    // エラーメッセージのラベル
    $v->labels([
        'name' => '名前',
        'email' => 'メールアドレス'
    ]);
    // 必須入力
    $v->rule('required', [
        'name',
        'email'
    ]);
    // 最大文字数
    $v->rule('lengthMax', ['name', 'email'], 255);
    // メールアドレスチェック
    $v->rule('email', ['email']);
    if (!$v->validate()) {
        return $v->errors();
    }

eftec/bladeone

Bladeテンプレートエンジン。
Smartyより断線使いやすい。
https://github.com/EFTEC/BladeOne

ソース例


@include('header')
<main>
    <h1>{{$title}}</h1>
    @if( $a == 1 )
        {{$sample}}
    @endif
</main>

swiftmailer/swiftmailer

LaravelのSwiftmailerと同じです。
Qdmailはもう卒業しましょう。
SMTP送信や文字化け等、全く気にしないで送信できます。
https://github.com/swiftmailer/swiftmailer

ソース例


<?php
function send_mail($to, $subject, $body)
{
    $transport = (new Swift_SmtpTransport('localhost', 587))
        ->setUsername('user name')
        ->setPassword('password');

    $mailer = new Swift_Mailer($transport);
    $message = (new Swift_Message($subject))
        ->setFrom(['[email protected]' => 'テスト'])
        ->setTo([$to])
        ->setBody($body);

    return $mailer->send($message);
}

monolog/monolog

Laravelの

Log::info()

と同じようなログ機構。
簡単なフォームでもログをきちんと取っておくと後で原因が追いやすい。
ローテーションもできるのでログの圧迫も気にしなくて大丈夫。

https://github.com/Seldaek/monolog

ソース例


<?php
$log = new Logger('form');
$log->pushHandler(new RotatingFileHandler('./logs/form.log'), 60);
$log->info('=== Start ===');

まとめ

PHP5.6はCakePHPやSmatyのテンプレートエンジンやQdmailで実装していたときが懐かしい。
セキュリティ的には良くないので早めにPHP7系にアップデートすることをおすすめします。

PHPのサポート期限をまとめてくれている方がいるのでこちらを参照してください。

PHPサポート期限

PHPサポート期限

https://qiita.com/bezeklik/items/72d1ff8393f66673e2bc

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x