Build the future of communications.
Start building for free
  • By Oluyemi Olususi
    Laravelアプリケーションでリポジトリパターンを使う方法 Laravelアプリケーションでリポジトリパターンを使う方法

    この記事はOluyemi Olususiこちらで公開した記事(英語)を日本語化したものです。

    リポジトリは、ドメインとデータマッピングレイヤー間の抽象化レイヤーとして定義できます。これにより、コレクション的なインターフェイスを通じてドメインオブジェクトにアクセスして両者の仲介手段を提供します。

    LaravelSymfonyなど、最新のPHPフレームワークは、オブジェクト関係マッピング(ORM)を介してデータベースを操作します。SymfonyのデフォルトORMはDoctrineで、LaravelはEloquentを使用します。

    ともに、データベース操作のために異なるアプローチがとられます。Eloquentの場合、データベーステーブルごとにモデルが生成され、操作の基盤が形成されます。一方、Doctrineはリポジトリパターンを使用します。各エンティティには対応するリポジトリがあり、データベースを操作するヘルパー関数が格納されています。Laravelは標準でこの機能は提供していませんが、Laravelプロジェクトでリポジトリパターンを使用することは可能です。

    リポジトリパターンを使う主なメリットは、依存性逆転の原則(具体化でなく抽象化コード)を使用できる点です。これにより、例えば後でEloquentがサポートしないデータソースに変更した場合などに、変更の影響を受けにくいコードを作成できます。

    データベース関連のロジックを一箇所で管理することにより、コードの構成を整理したり、重複を避けることにもつながります。このようなメリットは小規模のプロジェクトではすぐに …

    Read More
  • By Oluyemi Olususi
    CodeIgniterとJSON Web Tokenを使用したセキュアなRESTful APIの構築方法 CodeIgniterとJSON Web Tokenを使用したセキュアなRESTful APIの構築方法

    この記事はOluyemi Olususiこちらで公開した記事(英語)を日本語化したものです。

    クラウドサービスの利用と応用が拡大する中で、Simple Object Access Protocol(SOAP)よりも効率的なアーキテクチャスタイルの必要性が増しています。REST(REpresentational State Transfer)はクライアントとApplication Programming Interface(API)との軽量でステートレスな通信を可能にします。RESTを使った通信はステートレスです。Restful APIのアクセスコントロールはトークンベースで行われ、クライアントが要求したアクションをリソースに実行する権限があるかどうかを判別する情報が伝えられます。

    本稿では、CodeIgniterを使用したRESTful APIの作成方法を紹介します。CodeIgniterは強力な機能を持つPHPフレームワークで、非常に小さなリソースでフルスケールのWebアプリケーションを構築できます。

    必要条件

    CodeIgniterの基本的な知識があると役立ちます。CodeIgniterの知識に不安がある場合も、チュートリアルの中で説明とともに公式ドキュメントへのリンクを紹介します。不明な点があれば、リンクを参照しながらチュートリアルを進めてください。

    また、以下の項目がインストールされている必要があります。

    • Composer
      CodeIgniterプロジェクトの依存関係管理に使用します。
    • ローカルデータベースインスタンス
      このチュートリアルではMy …
    Read More
  • By Oluyemi Olususi
    DockerとLaravelを使って開発してみよう DockerとLaravelを使って開発してみよう

    この記事はOluyemi Olususiこちらで公開した記事(英語)を日本語化したものです。

    あなたが所属する開発チームは最近アプリをリリースし、そのアプリが短期間で大ヒットしていることが分かりました。利用者からの需要は収まらず、開発チームは「スケールアップ」について検討を始めました。

    かつて、このスケールアップ作業は「垂直スケーリング」と呼ばれ、高機能のサーバーに投資することを意味していましたが、最近のコンテナ技術の台頭により、低コストで迅速にコンテナを追加できるようになり、アプリケーションの水平スケーリングが可能になりました。

    これにより、2つの大きなメリットがもたらされます。1つ目は、高機能のサーバーに追加コストをかける必要がないことです。2つ目は、現在の顧客の需要に基づいて、アプリケーションのスケールアップとスケールダウンが可能になることです。

    本稿では、LaravelプロジェクトでDockerを使用する方法について紹介します。Dockerを使えば、アプリケーションの使用量の急増と急減の両方に対応してスケーリング可能なアプリケーションを開発できます。

    以下のチュートリアルでは、ApacheをWebサーバーとして使用し、PostgreSQLでデータベースエンジンを提供します。著名な歴史家による有名な名言を表示するアプリケーションを作成します。

    必要条件

    このチュートリアルを進めるには、以下の項目が必要です。

    • PHPとLaravelの基本的な知識。
    • コンテナ、イメージ、ネットワーク、サービスなど、基本的なDocker用語の知識。Jeff Hale …
    Read More
  • By Oluyemi Olususi
    Docker ComposeとSymfonyを使って開発してみよう Docker ComposeとSymfonyを使って開発してみよう

    この記事はOluyemi Olususiこちらで公開した記事(英語)を日本語化したものです。

    ソフトウェアをチーム間で開発すると、コードベースの管理や、開発者全員が問題なく使える開発環境の準備など、さまざまな困難が生じます。

    Gitはバージョン管理において大きな役割を果たしており、誰もが問題なくコードベースを操作できるようになりましたが、作業環境が原因で混乱が生じるリスクがまだあります。

    WindowsmacOSLinuxなど、開発者が好むオペレーティングシステムはさまざまであり、同じことがアプリケーションの導入環境にも当てはまります。

    その結果、特定のエラーが発生すると、問題の原因を突き止めることが困難になります。エラーが1つのOSでのみ発生することが混乱に拍車をかける可能性もあります。開発者の間で有名なフレーズ、「It works on my machine」(私のマシンでは動作するのに)の状態につながります。

    Dockerを開始する

    小規模で軽量の実行環境であるコンテナにアプリケーションを作成することにより、アプリケーションの予測可能性が向上します。コンテナでは、基盤となるオペレーティングシステムカーネルを共有しますが、それ以外は互いから切り離して実行されます。

    DockerをSymfonyプロジェクトに統合することにより、導入先に関係なく、アプリケーションの実行時に環境とその設定を常に同じにすることができます。

    本稿では、SymfonyプロジェクトでDockerを使用する方法について紹介します。ここでは、NginxがWebサーバーとして使用 …

    Read More
  • By Oluyemi Olususi
    Laravel Passportを使用したPHPによるセキュアなAPIの構築 Laravel Passportを使用したPHPによるセキュアなAPIの構築

    この記事はOluyemi Olususiこちらで公開した記事(英語)を日本語化したものです。

    モバイルアプリケーションのバックエンドを構築する場合や、最新のJavaScriptフレームワークを使用する場合は、RESTful APIを避けて通ることはできません。APIは、2つのソフトウェアプログラムが相互に通信するためのインターフェイスです。APIを使用した通信では、リクエスト間でセッション状態が保持されない点に注意が必要です。そのため、ユーザーを認証し、認可するためにトークンを使用する必要があります。

    Laravelにはセキュリティを適切に確保できる仕組みがあらかじめ用意されているため、このようなリソースを簡単に構築できます。このチュートリアルでは、Laravel Passportを使用してセキュアなLaravelバックエンドAPIを構築する方法について説明します。最後まで進めると、セキュアなLaravel APIを作成する方法や、既存のAPIのセキュリティを強化する方法を習得できます。

    必要条件

    このチュートリアルを進めるにあたり、Laravelを使用したアプリケーション構築の基礎知識があると役立ちます。また、依存関係を管理するために、Composerがグローバルインストールされていること、エンドポイントのテストにPostmanがそれぞれ必要です。

    構築する内容

    大手テクノロジー企業のCEOのリストを作成するAPIを構築し、セキュアなLaravel APIの構築方法を学びます。このアプリケーションは、各CEOについて以下の情報を一覧表示します。

    • 名 …
    Read More
  • By Oluyemi Olususi
    PHPUnitでLaravelのAPIをユニットテストする PHPUnitでLaravelのAPIをユニットテストする

    この記事はOluyemi Olususiこちらで公開した記事(英語)を日本語化したものです。

    アプリケーションを正常に動作させるためのベストプラクティスとして、テストがあります。指定されたソフトウェア要件が正しく実装されているかを確認するためのユニットテスト、自動機能テスト、APIエンドポイントテストの実施などです。プロジェクトで変更を実施した場合や、新たな機能を実装した場合でも、これらのテストを行うことにより、アプリケーションの動作不良を確実に回避できます。このような開発方法をテスト駆動開発と呼びます。

    人気のあるPHPフレームワークであるLaravelも、テストの容易さを念頭に構築されており、PHPUnitというテストスイートが付属しています。PHPUnitはPHP開発者の生産性を向上するテストフレームワークです。ユニットテストと呼ばれる最小単位のコンポーネントでPHPコードをテストすることを主な目的として設計されていますが、ユニットテスト以外のテストにも柔軟に応用することができます。

    このチュートリアルでは、テスト駆動開発の手法に従い、Laravel APIプロジェクトのエンドポイントをテストする方法について説明します。まず、失敗する前提のテストを記述します。その後、テストに合格するコードを記述します。チュートリアルを最後まで進めると、基本的なテストの実施方法について学び、新規または既存のLaravel APIプロジェクトに応用できるようになります。

    必要条件

    このチュートリアルを進めるにあたり、Laravelを使用したアプリケーション構築の基礎 …

    Read More
  • By Oluyemi Olususi
    Build a Single Page Application in PHP with Yii 2.0 and Vue.js Build a Single Page Application in PHP with Yii 2.0 and Vue.js

    In the early days of the web, a series of static HTML files would be linked together to form a website. Clicking on page links would trigger requests to the server which would respond with a new HTML file.

    The rise of JavaScript and the advent of AJAX, however, made it possible to send and receive data from the server without full page reloads. These technologies added dynamism to websites, opening the door for a massive advancement in how websites operate today. For example, by using JavaScript, it is possible to handle user interaction and update websites via asynchronous requests.

    These types of websites became known as Single Page Applications (SPA). On the back of this, several JavaScript libraries and frameworks have risen to prominence - none more so than Vue.js.

    In this article, you will learn how to build a Single Page Application using Vue.js and the Yii …

    Read More
  • By Oluyemi Olususi
    How to Use the Repository Pattern in a Laravel Application How to Use the Repository Pattern in a Laravel Application Header

    A repository can be defined as a layer of abstraction between the domain and data mapping layers, one that provides an avenue of mediation between both, via a collection-like interface for accessing domain objects.

    Modern PHP frameworks, such as Laravel and Symfony, interact with databases via Object-relational mappers (ORMs); Symfony uses Doctrine as its default ORM and Laravel uses Eloquent.

    Both take different approaches in how database interaction works. With Eloquent, Models are generated for each database table, forming the basis of interaction. Doctrine, however, uses the Repository pattern where each Entity has a corresponding repository containing helper functions to interact with the database. While Laravel doesn't provide this functionality out of the box, it is possible to use the Repository pattern in Laravel projects.

    A key benefit of the Repository pattern is that it allows us to use the Principle of Dependency Inversion (or code to …

    Read More
  • By Oluyemi Olususi
    Create One-Time Passwords in PHP with Symfony and Twilio's Verify API Create One-Time Passwords in PHP with Symfony and Twilio's Verify API

    As security threats continue to grow and their impacts become ever-more significant, Two-factor Authentication (2FA) is progressively becoming a de facto security standard. As an extra layer of security to the traditional username/email and password combination normally provided by the user(s) of an application, Two-factor authentication works and can be implemented by:

    • Generating and sending a numeric code to the user's mobile device either via SMS, email, or phone call. This is popularly called One-Time Password (OTP) as it is a short-live password that can only be used once during authentication.
    • Using an authenticator app to provide a constantly rotating set of codes that can be used for authentication when needed.
    • Using push authentication where a user responds to a device push notification to either approve or reject an in-application event.

    In this article, I will show you how to generate an OTP and send it to the user via …

    Read More
  • By Oluyemi Olususi
    Build a Bulk SMS Sender With Twilio, PHP, and Yii2 Build a Bulk SMS Sending Application With Twilio, PHP, and Yii2

    Notifications are an essential feature of an application because they provide an outlet for them to keep the customers updated with activities relating to their accounts. SMS notifications, specifically, provide a large reach due to the sheer number of phones in circulation. They also have the added advantage of accessibility because even customers using feature phones are able to receive notifications.

    Consequently, the question then becomes: how do you send SMS notifications to a large number of phones efficiently? This is because sending SMS notifications sequentially will likely create a scalability bottleneck.

    So in this article, I will show you how to send SMS notifications in bulk using Twilio, which makes managing/dispatching programmable SMS a breeze, and PHP's Yii2 framework. We will build an application that will send customized SMS notifications in bulk to clients via Twilio's SMS API.

    Tutorial Requirements

    To follow this tutorial, you need …

    Read More
  • Newer
    Older
    Sign up and start building
    Not ready yet? Talk to an expert.