11
7

More than 3 years have passed since last update.

【PHP】スクラッチでTwitterクローンを11日間で作成してみた

Last updated at Posted at 2020-04-08

このアプリについて

デモは以下をご覧ください。
コードへのリンク

デモンストレーション.gif

このアプリの機能について

・ログイン/ログアウト
・文章投稿
・投稿削除
・投稿編集
・通知機能(フォローされたアカウント名表示、リプライしたアカウント名表示)
・フォロー/フォロワー表示
・フォロー/フォロー解除

データベースの仕組み

データベース名【twitter_clone】

テーブル名一覧
・tweets
・users
・followers
・reply
・notice

カラム名一覧【usersテーブル】
・id : 主キー
・name :アカウント名
・email :アカウントのメールアドレス
・password : アカウントのパスワード
・created_at : datetime型で投稿された日時を保管

カラム名一覧【tweetsテーブル】
・id : 主キー
・user_id : usersテーブルのidと連携している各アカウント一意のid
・created_at : datetime型で投稿された日時を保管
・tweet : text型で投稿したメッセージを保管

カラム名一覧【replyテーブル】
・id : 主キー
・reply_user : リプライしたuserのidを保管
・reply_message : text型で投稿したリプライを保管
・replied_tweet_id : リプライしたtweetのidを保管

カラム名一覧【followersテーブル】
・id : 主キー
・user_id : ログインしているアカウントのid
・following_id : フォローしたアカウントのid

カラム名一覧【noticeテーブル】
・id : 主キー
・created_at : datetime型で投稿された日時を保管
・user_id : ログインしているアカウントのid
・follow_check : bool値でフォロー通知のためのカラム(初期値はfalse)
・following_id : フォローしたアカウントのid
・reply_check : bool値でリプライ通知のためのカラム(初期値はfalse)
・reply_user : リプライしたアカウントのid

アプリの作成工程

・1日目:要件定義
・2日目:データベース設計、コーディング
・3日目-9日目:コーディング
・10日目:フロント改修作業
・11日目:可読性upのためのコード改修作業

苦労した点とどの様に対処したか

・phpもデータベースも触ったことがほとんどない初心者だったため、
pdo接続からSQLの操作まで一連の流れをつかむのに時間がかかった。
これに対する対処はググりまくって感覚を掴むしかなかった。

・バグ修正の仕方もよく分からなかったが、エンジニアの友人に
エラー文を逃げずに読むこととvar_dumpを使用してその都度
変数の中身を可視化してどの記述がおかしいか特定するように
助言されたためそれを実行した。

作成した感想

書籍を淡々と読むだけの学習よりかは桁違いに成長を実感した。
完成した時の喜びは半端ではなかった。

おわりに

つたない記事ですが、最後まで読んでいただきありがとうございました。
次はAmazonクローンやfacebookクローンなどを作ろうと思います。
機会がありましたら、また記事をupするのでよろしくお願いします!

11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7