concrete5は自由にカスタマイズが可能なCMSです。しかしながら、コア(CMSを構成する基本ファイル一式)に直接変更を加えてはいけません。コアを変更してしまうと、セキュリティの脆弱性が残ってしまったり、メンテナンス作業を複雑化させてしまいます。
コアを変更するしか実現できない機能の場合、パッチを当てることも可能ですが、基本的には/applicationでコアのオーバーライドを行ないます。
オーバーライドの方法はいくつか存在しますが、今回は、サービスプロバイダーのオーバーライドについて紹介していきたいと思います。
サービスプロバイダーはどこで登録されている?
concrete5には、メール送信やキャッシュ、フォームなど様々な「サービス」が登録されています。各サービスプロバイダーのファイルは、/concrete/src に存在し、それらサービスプロバイダーの登録は/concrete/config/app.phpで行われています。
サービスプロバイダーをオーバーライド
例として、フォームサービスをオーバーライドする方法を紹介します。
まず、/application/config/app.phpにオーバーライドしたいサービスプロバイダーファイルを記載します。