PHPでの検索機能付きデータベース系サイト開発記録

見出し

スポンサーリンク

2016/4/7の開発記録

AA作成ツールをやめていきなりCakePHPでのフレームワークを使用したサイトを作り始めてみる事にしました。

薄っぺらいサイトで良いので、なんとか検索機能付きデータベース系サイトを1個作ってみます。1個作ればコピーして違う用途でも使えますし。

とりあえず案。

基本機能案

  • 検索一覧ページ
    • ヘッダー
    • 左サイド検索BOX
    • 一覧
    • フッター
  • 商品個別ページ
    • ヘッダー
    • 左サイド検索BOX
    • 商品内容
    • フッター
  • 検索BOX (カテゴリ検索+未定 ドメイン/category/未定

追加機能案1

  • クローラーを作り表示内容をかき集めてデータベースに格納して商品数を一気に拡大。

追加機能案2(やらなくても良いかも

  • ログイン機能
    • 先ずはメールアドレス、その後SNS
  • コメント機能
  • +α(書き込みたくなる何か)

作業

CakePHP(フレームワーク)の立ち上げに着手開始します。

DBは設計がまだシンプルなので随時作成という事で。

デザインもcssがどうしたら良いかわからないレベルなので、難しい事はせずシンプルな案を採用したいです。twitter Bootstrapというのが気になっていますがどうなのでしょうか。

2016/4/9-10の開発記録

CakePHPの初期表示設定に1日苦戦してしまいました。やる事なす事全てエラーになるので挫折しかけましたが、なんとか立ち上げられました。

でも、composerの仕組みやyumの事など少し理解度が増したので良い経験にはなっていると思います。

CakePHPのVirtualBox Vagrantへのインストールと初期表示エラーの解消まとめ
既にこれまでに準備したVagrant仮想環境にCakePHPをインストールしていきます。 Vagrant仮想環境構築まとめはこちら(apa...

2016/4/11の開発記録

ConEmuマクロ設定

CakePHPのブログチュートリアル

  • index 一覧ページ
  • view 詳細ページ

2016/4/14の開発記録

CakePHPのブログチュートリアル

2016/4/18の開発記録

やはりブログチュートリアル。

view 詳細ページの追加機能のバグ修正、編集機能追加、削除昨日追加まで。

あとバージョンアップ。

CakePHPブログチュートリアルError: FlashComponent could not be found.
CakePHPのブログチュートリアルをやっているのですが、フラッシュコンポーネントがないエラーになりました。 Missing Co...

2016/4/19の開発記録

CakePHPのチュートリアル完了。

他規約など読み込む。改めて読むとそうだったのかと思う。

あまりまとまった時間が取れない。

サイトの設計を進める。

2016/5/5の開発記録

だいぶ時間が空いてしまいました。

サイトに表示する項目の洗い出しをしました。

それをもとにDB設計の半分くらいまでやりました。

久しぶりにPCに向かったら目が痛むので中断。

2016/5/12の開発記録

DB設計は出来ました。

twitter bootstrapを導入しました。

2016/5/18の開発記録

twitter bootstrapを実際にCakePHPの実画面に設定

Twitter BootstrapをCakePHPにて使用する
Twitter BootstrapをCakePHPに設定したので記録しておきます。 ※CakePHPは2.X系を使用しています。 ...

config使用方法確認と初期設定

CakePHP configの使用方法メモ
CakePHPにてサイト名などをconfigに持たせて使い回したかったので、config使用方法を確認しました。 ※CakePHP2....

本日は3コミットです。おやすみなさい。

2016/6/1の開発記録

なかなか着手出来ていない・・・。

bootstrapのjsを使うように修正しただけ。

2016/6/16の開発記録

久々に着手。リビルドを聞きながら・・・

bootstrapをベースにテンプレート調整をした。

ヘッダー、ナビバー、左サイドバー、メインコンテンツを準備。

サイドバーとメインコンテンツについてはbootstrapで該当するものがどれかわからなかった為、この本を参考に構成。

一覧ページの項目検討。

詳細ページの項目検討。

サーバサイドを先に作っていくか、view側を先に作っていくか、どっちか迷うシーンが多い。

テンプレート枠は作ったのでがっつり表示項目を出力するところまでサーバ処理に入る事にした。

出し切ったところで画面側のスタイル調整などしていく事に。

cssを変更しても何故か表示が変わらない現象が発生。キャッシュが自動的に使われていると思われ、debugモードを2にしてみたが変わらず、tmpディレクトリのキャッシュファイルを削除しようと思ったが時間になったので終了。

2016/6/19の開発記録

レスポンシブwebデザインのレイアウト修正。

データベース設計。

データベースSQL CREATE文作成完 INSERT文マスタ作成中。

INSERT するデータ調査をしながら設計をしていったが、やっぱりデータを洗い出してみると当初の設計だけでは全部見切れていない。

今後、仮にリリース後だとしても、データ推移とか実際にさわって見てまた気づく事があれば、臆する事なくデータベース移行もしていきたいと改めて感じた。

2016/8/22の開発記録

実に2か月ぶりの更新となってしまったので、どこまで出来ていたか大分忘れていた・・・。

もっとメモ・コメントをとっていくようにしようと思った。

データベースのSQLを全て作成完

routes.phpの勉強

CakePHP2.x系のroutes.phpで好きなURLに変える
CakePHP2.x系の開発でroutes.phpを使用して好きなURLで動かせるよう調べたのでメモしておきます。routes.phpの書き...

2016/9/6の開発記録

一覧と詳細の画面レイアウトを手書きでちゃちゃっと作ろうと思ったが、項目が色々あったので結局エクセルで適当に作ってソースと合わせてgit管理。

詳細データを投入するにあたり、マスタデータの登録フォームが必要になってきたので着手。

2016/9/14の開発記録

データ登録時にマスタの値をセレクトボックスに表示する設定をしますた。

CakePHP2.x系データ入力フォームでマスタの値をセレクトボックスで選択出来るようにする
CakePHP2.x系のデータ入力フォームでマスタの値をセレクトボックスで選択出来るようにしました。 例.User登録ページ ユーザ登録...

2016/9/15の開発記録

データ登録時の項目名に日本語ラベルを付加

2016/9/27の開発記録

画像保存処理に着手。

CakePHPの標準レールになるべく則ってやろうとしています。

これを守らないと、あとあとになって大変になる。という思いで今はフォームから勉強しつつやってます。

2016/9/30の開発記録

画像保存処理とフォームを引き続き。

ファイルで保存するかDBに保存するかでうろうろしていたが、あとでクローリングしたファイルをがっつり保存したいので、ファイルにしました。

2016/10/3の開発記録

画像保存処理と入力チェックが完成。

入力チェックはmodelのvalidateを記載。

なるべくコントローラーに書きたくない思いで色々調べました。

あとgulp導入中

2016/10/7-11の開発記録

gulp忘れてたことに今気づく。保留中。

viewの詳細項目をbootstrapのgridを使用して表示するようにした。

見た目のdetailにこだわり始めると時間があっという間になくなる。

先ずは機能を先に作ろうと改めて思った。

見た目はデータ入れ終わってからにしよう。

課題:gulp

2016/10/14の開発記録

前回、見た目はあとでって言ったのに・・・

気になってすぐいじれそうなところから、ちょこちょこやってたら2時間くらい経ってた。

bootstrapを入れているのでbootstrapでやるかやらないか、gridかtableかulかdlかなど基本的なところでうだうだ迷ってしまい、しかも結局全部試してしまい、gridとtableの組み合わせになりました。

しかも詳細項目ページがだいたい終わってからbootstrapのテーマで見てたら使ってみたいのが色々出てきたという・・・。

デザインは手を付け始めると終わりが見えない。本当にもうこれ以上さわらないようにしたい。明日からこそはクローラー開発してデータひっぱってくる為の環境を整えていきます。

課題:gulp

2016/10/17の開発記録

またデザイン調整をしてしまいました・・・。

素人ながらレスポンシブデザインにしたかったので、bootstrapなら簡単に出来るはずと思い、良く理解していなかったgridの調整。12分割するだけであとはcol-lg6とかmd sm xsとか使いわけてなかったのですが、全部のブレイクポイントを設定してみたらスムーズにレスポンシブwebデザインに。それだけだったのか!という感じで度肝を抜かされました。

可変にする箇所はこのクラス(col-md-6など)をつける必要はありますが、そんなにページの種類がないのでこれ(grid)機能を使った方が今後も簡単に出来そうな手ごたえを感じました。

bootstrapのテーマはやっぱりデフォルトベースで行きたいと思います。機能的に動けばあとはありきたりなデザインでも良いかと思いました。スキル不足過ぎるし。

なんだか光が見えてきた気がします・・・。これで今度こそクローラー開発に移行したいです。

課題:gulp

2016/10/18の開発記録

bootstrapで作られたサイトを見たヒントを遣い、またbootstrapの調整をしてしまった・・・

良くはなってきているもののデザイン意外進んでないという。もう本当に本当にやめよう。

明日からこそはクローラー開発に着手する!

課題:gulp、クローラー

2016/10/25の開発記録

クローラー開発に入りました。

クローラー開発の記録はこちらに記載していきます。

Rubyでのスクレイピング・クローラー開発記録(データベース系サイトのデータ収集用)
データベース系サイト用にデータ収集クローラーを開発してみることにしました。その記録をこちらに記載していきます。 この記事は随時追記して...

という事でしばらくこのページは更新しない・・・はず!

2017/2/26の開発記録

ようやくRubyでのクローリング・データ収集が終わりこちらに戻ってきました。他にもデータ収集したいところは山ほどありますが先ずは基本的なところが終えたというだけです。

Rubyでのスクレイピング・クローラー開発記録(データベース系サイトのデータ収集用)
データベース系サイト用にデータ収集クローラーを開発してみることにしました。その記録をこちらに記載していきます。 この記事は随時追記して...

それでまたこちらの開発記録に戻ってきました。

今日は収集したデータの投入になるのですが、10月までやってたことの思い出しを兼ねてDBのER図を作ってみました。

投入データの作成中です。投入データを見てからわかったのですがDB構造をちょっと変えた方が良さそうになってきました。ビジネス観点からだったら進めちゃって良いのですが勉強を兼ねているので最善の構造にしてみる事にしました。やっぱりデータは本番のデータを使わってみないとわからない事があるという事でした。

2017/2/27-3/1の開発記録

データ投入のSQLを作りました。エクセル上での整形作業に時間がかかりましたが、データインポートで一気に入ったときは達成感がありました。

次からはデータ投入時に発生したデータベース変更などの仕様変更を画面側に修正します。

2017/3/4-13の開発記録

データベースの仕様変更をがっつりとして落ち着いたところで、viewまわりを修正しつつ、SEO向けにURLを量産しようと思い、多方面からの一覧を作りました。○○一覧、××一覧、など。それぞれパラメータがあるので一気にURL数が増やせました。また、詳細ページから増えた一覧への内部リンクを設置して、クローリングしてもらえないかなと試みてみました。

SEOタグ(title, description, keywords, h1)の仕様決めもしました。

スマホアクセスが多いと思うので、レスポンシブwebにしたく、bootstrapを使用しています。スマホ用の下段メニューを作りました。右上にも一応全メニューを設置しておこうかと思います。

もうそろそろリリース出来そうです。その後はこのテンプレートを使ってサイトを量産してみたいです。

2017/3/26-2017/4/21の開発記録

どっぷりはまってしばらく書く事がありませんでした。

何をやっていたかと言うと、開発環境vagrantのboxバックアップを取らずに、えいや!!とCentOSのバージョンアップ、Apacheのバージョンアップ、PHPのバージョンアップ、DBのバージョンアップを一気にやってました。仕事で使う必要が出てきたのでどうせなら先回りしてやろうと思い、自宅で先行して頑張ってました。

残業は出ませんが・・・しくしくしく(ノД`)・゜・。

で、ようやく元のところに戻ってきました。見た目は何も変わってません。インフラのバージョンが変わったのと自分の経験が増えただけです。最近では寝不足がたたって体調が悪化していたので着手出来る日が減りました。というか夜間自宅稼働を減らしました。

が、だれてきてるのもあるような気がするので、きちんとメリハリをつけてやる時はやろうと思います。でないとこれだけのシステムに1年とかかかっちゃってますので。この遅さはやばいです。勉強がてらとは言え。

次回は全体概要スケジュールをもう一度見直して何をするか決めます。いや決めたはずなのに書いてないから良くわからなくなってます。自分だけだから覚えてるでしょ。という感じだとすぐ忘れます。仕事だと覚えていられるような気がするのに。なんでだろう。

2017/4/25-2017/4/27の開発記録

Macでも開発が出来るように最新のバージョンで同じ環境を作ったりした。

同じ事やるにしても忘れていたりして色々手順が残せたので良かった。汎用的な環境構築スキルもだんだんと身についてきているような気がする。

環境構築記録Vagrant CentOS7 Apache2.4 PHP7 CakePHP2.7 MariaDB
Vagrant CentOS7 Apache MariaDBの環境構築をしたので手順を記録しておきます。何かの参考になれば何よりです。 ...

本線に戻って方針・やる事を決めよう。

2017/6/25-2017/6/27の開発記録

やっべ。また日にちたっちゃった。

やらなきゃいけないのわかってるんだけど、日次で発生する細かいタスクこなしているとどうしてもこの自己開発に着手するのが優先度低くなってる。いかんなぁと思いbacklogというのに手を出してみました。

無料版なんですが、これ使ってみた感じ良いです。1人プロジェクトなら無料版で事足ります。プラン一覧の右下に無料リンクがあるのに気付ければ無料で使えます。

という事で自己管理・スケジュール管理・優先度管理をして再びこの開発記録に帰ってきました。

で、またこのデータベース系サイトの着手再開したのですが、bootstrapのデザイン見てたらなんかださく感じてきてしまい、こだわらないと言ったのにcssのフレームワーク変更をする事にしました(爆)何にしたかと言うとmaterial design liteというgoogleのマテリアルデザインのcssフレームワークです。bootstrapと同じようにgrid機能もあるし、

あと、スマホとPCとでレスポンシブwebデザインにしていたのですが、今回を機にスマホファーストだし、スマホデザインを主としてPCはそれを広げる程度という感じにしたいです。余計な工数をさくよりちゃちゃっと開発して楽に横展開。そういうスタンスで挑みたいと思います。今度こそ・・・。material design liteの導入は簡単でした。headに指定するだけ。

あとはこれまで作ってきたviewにcssをあてていったりhtmlを組み直したりしているところです。

2017/6/28の開発記録

マテリアル対応を引き続き。このフレームワークもこつが掴めてきた。もう少しで取り戻せそう。

2017/7の開発記録

マテリアル対応をした。今月は3時間しか開発出来なかった。

2017/8/7-2017/8/9の開発記録

マテリアル対応が終わった。

ついにデプロイをして公開をした!

サーバにgitの設定、初期DBのインポートなどをした。

まだレンタルサーバだけど落ち着いたら高いけど勉強も兼ねてAWSに移行したい。

機能が全然途中なのでこれから開発環境で作ったら本番にデプロイをしてという形でやっていきたい。

公開すると気持ちが変わる。早く更新したい。頑張ろう!

2017/8/10-2017/8/11の開発記録

本番公開出来たからかテンションが上がり11コミット!!

たいした修正ではないのですがaタグのcakeヘルパー使用、パンクズ、h1タグ、一覧ページ新規作成しました。これから出かけますがパソコンを持って仮想環境で開発後リモートpush・本番デプロイしていこうと思います。すごいやる気が出てきている。

2017/8/12-2017/8/15の開発記録

お盆の帰省中新幹線の中、往復で5時間ほどコーディング。

GoogleMaterialDesignの使い方の修正やキーワード検索機能を実装。

POSTで検索してしまったので、次はGETにしてURLを量産してみたいです。

2017/8/19の開発記録

検索結果一覧を静的URLにしました。

パンクズ・h1を設定しました。

2017/8/22-2017/8/27の開発記録

2時間だけ。

404ページや検索結果0件のページ。

MySQL外部キー制約実装。

2017/8/29-2017/8/30の開発記録

2日で計6時間。

久々にファミレスにこもってコミット。というかほぼページャー・ルーター調査という・・・。色々調べてやってみても中々うまくいかない。

明日からはルーターのデバッグをして動作を研究する予定です。

勉強を兼ねているので打開策を使用せずガチでフレームワークと向き合う事にしました。

今日はCakePHP2.xのマニュアル和訳ページのプルリクを何件か送ってみました。初めてだったので迷惑をかけてしまいましたが、一連の流れが見えてきてOSSにコミットする(マージしてもらえる)楽しさがわかってきだしました。

いずれは翻訳だけでなくコードもコミットしてみたいです。

あとCakePHPのバージョンアップをしました。

2.7.9から2.10.2の最新へバージョンアップ!

手順は普通に上書きしただけで簡単に出来ました。

もちろん修正した分はコミットする際に差分を更新しないように破棄をしました。

注意点は.gitignoreに気を付けながらやる事でした。

何も不具合なく、20分くらいでバージョンアップ出来ました。

明日からも頑張るぞ!

2017/8/31の開発記録

5時間。平日でこの稼働量。眠い・・・

問題になっていたCakePHP2.x系のpaginatorとrouter関連の辺りでページャーからのリンクが意図しないURLになってしまった問題。

これが昨日から引き続き最大の課題でした。

なんとかトータル10時間ほどかかりましたが、routerとpaginatorのあたりはデバッグしまくってうまくいきました。(詳しくは今度記事書きます

どうしても静的URLにしたかったのですね。なんとかSEO効果ありそうな気がしているので。

「/index/?page=2」 とかのURLではなく 「/2」 みたいにシンプルかつパラメータではないようなURLにしたかったのです。

フレームワークに頼らずにごりごりURLを整形すればやりたい事はすぐ出来たのですが、フレームワークを使ってしあげたかったのです。これで覚えた事は今後も使えるしフレームワークが変わってもあの時はこうだったという感覚がつかめたのではないかと思います。

たぶん・・・そうであってほしい

昨日CakePHPのバージョンアップ(2.7⇒2.10)した影響が出ていました。

バージョンアップした事により非推奨になる書き方にCakePHPからメッセージが表示されました。

CakePHP2.10系にしたらFormヘルパーでaction非推奨と言われた
CakePHP2.10系にしたらFormヘルパーでaction非推奨と言われました。 画面に表示されたメッセージ。 Deprecated...

2017/9/4-2017/9/8の開発記録

10時間。

ページャー実装の不具合の修正。2ページ目以降のSEOタグ設定。

ユーザ登録実装の調査・開発中。

やはりフレームワークの使い方がわからない部分を使いこなせるようにする、というところが一番調査したり実験したり時間がかかってしまいます。

フレームワークのコードをもっとすらすら読めれば良いのですが・・・。

英語力をつけようとしつつ頑張ります。Google翻訳がお友達です。

また、せっかくなので書ける事はどんどん書いておこうと思ってます。小ネタばかりですが。

CakePHP2.x系のメソッド名先頭に付加するアンダースコアまとめ
CakePHP2.x系のメソッド名先頭に付加するアンダースコアについてまとめました。 確認バージョン CakePHP2.10.2 ...
CakePHP2.x系で共通constを定義する
CakePHP2.x系で共通constを定義してみました。 確認バージョン CakePHP2.10.2 bootstrapに直接記載...
CakePHP2.x系のページャー機能(paginator)を使うとルーティング(Router, routes)がうまく動かず意図しないURLになる問題
CakePHP2.x系のページャー機能(paginator)を使うとルーティング(Router, routes)がうまく動かず意図しないUR...
CakePHP2.x系のバージョンアップ手順
CakePHP2.x系のバージョンアップをしたのでまとめておきます。 やってみたら20分ほどで想像していた通りに簡単に出来ました。 ...
CakePHP2.x系ログインユーザをviewに表示する
CakePHP2.x系ログインユーザをviewに表示しました。 確認バージョン CakePHP2.10.2 普通にユーザ...
CakePHP2.xからGmailでメールを送る設定
CakePHP2.xからGmailでメールを送る設定にてこずったので記録しておきます。 確認バージョン CakePHP2.10.2 ...
CakePHP2.xからレンタルサーバドメインメールを送る設定
CakePHP2.xからレンタルサーバドメインメールを送る設定をしました。 確認バージョン CakePHP2.10.2 ...

対応したチケット

  • aタグcake書式にする
  • imgタグcake書式にする
  • キーワード検索機能
  • 検索結果を静的ページにする
  • パンクズ階層 TOP>クラス>マスタークラス
  • viewにシリーズ名とリンク実装
  • ヘッダーメニューのリンク実装
  • スマホ時のタイトルが真ん中に来ているので左端にする ※ハンバーガーメニューのロード待ちで左にボタンが表示されたため真ん中にタイトルがあるように見えただけ
    日本語のページではありませんになってしまう場合がある ⇒ならない
  • SEOタグ付加(title、description、keywords)をヘルパーかappcontrollerなどで共通的に設定する。 →コントローラーで出力したものを使用するので、集約して設定するのは無理(ヘルパーに集約すると各コントローラーから引数をもらう必要が出てくるし、appcontrollerに集約すると各コントローラーで算出している処理を先にすることできないので無理。そうなると現状通り各viewファイルにかくしかないということにたどり着いた
  • HTML5のタグを使用する body配下にheader main
  • footer
  • header nav
  • .htmlを廃止して自然体にする
  • 外部キー制約やってみる
  • php docs用メソッドコメント ついでにprivate publicを明記
  • 404ページ、検索0ページ、メッセージはconfig
    検索結果が0件だったときのページ
  • 1ページに表示させる最大個数を決めてページに分割する
  • ページャーの2ページ目以降のURLが変わってしまう Router.phpでうまく変換されていないかデバッグしてみる
  • m一覧のページでaとjoinしていないので存在しないモンスターリンクができてしまっている
  • 2.10.2にバージョンアップしてみる
  • デバッグキットもバージョンアップ
  • constクラス作ってpage limit30を定義する
  • スマホのサイドメニューの下段検索BOXが下段メニューとかぶるので下に余白入れれば良いかも
  • 2ページ目以降のデスクリプションとう

2017/9/11-2017/10/13の開発記録

34時間。

今まではちょっとずつしか開発出来ず、前の状況を調べたり無駄な時間が多かったのですが、8月からフリーランスになり、割と自由で、いっそう自己開発に時間を使えるようになってきました。なので、1か月でこれだけ開発に時間を使えたのは過去最高です。

この開発は個人的なものですが、仕事としてWPのカスタマイズを少し受けたりもしています。トータルで月60時間を目標としています。9月は42時間でした・・・。でも7月は24時間、8月は36時間と着々と増やせるようにはなってきています。継続したいです!

コードにダイブしてしまい、結構ブログ更新を止めていました。

大きな開発としては、

  • ユーザ登録関連
    • 登録
    • ログイン
    • ログアウト
    • パスワード変更
    • パスワード再発行
    • 一連のメール
    • マイページ
    • ユーザアイコン
  • ゲットボタン(詳細ページのアイテムをユーザが保有していれば押すボタンでいいねボタンのようなもの)

ユーザ登録関連が終えたので山場を越えたような感じがします。色々見えてきたので、これを流用すれば色々なwebサービスを構築出来そうです。

いずれにせよ、細かいところにこだわると時間がかかります。

開発は平日はカフェやファミレスでやりま。最近はイオンのフードコートで弁当を食べてやります。はたから見るとかわいそうなサラリーマンという感じです。休日は子供の面倒をみないといけないのでほぼ出来ていません。寝かしつけるときに一緒に寝てしまうのをいつも月曜の朝に後悔します。でもこれを書いている今は日曜の深夜で起きられました。

その間に更新した記事は以下です

全然アウトプットできておらずまだストックがあります。

CakePHP2.xログインバリデーションの設定
CakePHP2.xログインバリデーション(入力チェック)の設定をしたので記録しておきます。 確認環境はCakePHP2.10.2です...
CakePHP2.x Auth->allow()ログイン不要actionの設定・ログイン画面にリダイレクトされてしまう問題
CakePHP2.x にてログイン機能を実装した後、新規actionがログイン画面にリダイレクトされてしまう問題に遭遇しました。 Ca...
CakePHP2.x コンポーネントからモデルを呼ぶ方法
CakePHP2.x コンポーネントからモデルを呼ぶ方法です。 CakePHP2.10.2で確認しました。 Component &...
CakePHP2.x コントローラーからコンポーネントを呼ぶ方法
CakePHP2.x コントローラーからコンポーネントを呼ぶ方法です。 CakePHP2.10.2で確認しました。 Controll...
CakePHP2.x ユーザが登録したアイコンを表示してなければデフォルトアイコンを表示したい
CakePHP2.x ユーザが登録したアイコンを表示してなければデフォルトアイコンを表示したく、やってみて上手くいった方法を記録しておきます...
CakePHP2.x 画像アップロードフォームの実装まとめ
CakePHP2.x 画像アップロードフォームを実装したのでまとめておきます。 ユーザマイページにユーザアイコンを登録する良くある箇所...

この間対応したチケット

  • ユーザ登録(メール)
  • ログアウトしたときのURL
  • メールテンプレファイル使用
  • 同一usernameが既に存在しますで登録できない(ただしメール認証未済みは検索対象外にする)
  • メール認証おわったタイミングで他の同一usernameのデータ(同一usernameでメール未承認データ)は削除する
  • メールフッターにCakePHPの書いてあるの消す
  • パスワード確認用
  • ログインidとメールどちらでもログインできるようにする
  • ユーザ登録導線でのフラッシュ修正
  • ユーザ登録導線でのメッセージ内容・バリデートメッセージのスタイル
  • ユーザ登録導線でのメッセージタイミング
  • ユーザ登録導線でのメッセージ見栄え
  • メールログを残す
  • パスワードを忘れた場合の再発行
  • パスワード変更機能
  • CakePHPのGmail初期設定
  • コメント系テーブル定義
  • userscontrollerリファクタリング・メソッドか等
  • マイページ実装 ユーザ名 登録日時 パスワード変更リンク ログアウトリンク
  • ユーザ画像アップロード
  • マイページ出来たらユーザアイコンをマイページで登録出来るようにする
  • ユーザアイコンは全ページ○型表示にする
  • 「ゲット」ボタン実装 ホバーで色がつく 最初は白系で薄い ホバー・クリックで色がつく クリックはajax(ajaxの内容・・・押したら「ゲットした」ボタンに色がつき、この状態でホバー時は白系の薄い色になる 押したら白系の薄い「ゲットした」に戻り、 未ログイン時はログイン・ユーザ登録してくださいポップアップ。)
    macサファリの場合ヘッダーメニューの右端まで見えない

2017/10/15-2017/10/26の開発記録

26時間

コメントエリアとゲットボタンの追加修正をメインに行いました。あとまたページャーとURL問題が発生して対応しました。結局このプロジェクトではページャー・ルーター系に一番時間をかけてしまいました。こんなに時間かかるんでしたら気にしなければ良かったとも思いました・・・。

でもこれでだいたい落ち着きました。あとはアフィリリンクをつけて放置しておこうと思います。amazonからAPIで指定キーワードに合致するリンクを生成したいと思います。アフィリリンクを11月にやってこのプロジェクトはエンドにしたいと思います。このプロジェクトではほとんど学ぶ為にやっていたので次のサービスで生かしたいと思います。

この間対応したチケット

  • 「ゲットした」ボタン実装 ホバーで色がつく最初は白系で薄い ホバー・クリックで色がつく クリックはajax(ajaxの内容・・・押したら「ゲットした」ボタンに色がつき、この状態でホバー時は白系の薄い色になる 押したら白系の薄い「ゲットした」に戻り、 未ログイン時はログイン・ユーザ登録してくださいポップアップ。)
  • ユーザコメント追加(コメントにはレスがつく。レスは親子まで。子が複数になる。親がコメントテーブル。子はリプライテーブル。コメントは左上アイコンがある形にする。レスも左上にアイコンがある形にする。レスはコメントより一段インデントが入って一段下がっている)
  • コメントエリアのスマホ対応
  • ゲットボタン押下でのリアルタイムでユーザアイコン表示非表示
  • ボタンデザインをマテリアルデザインlite対応にする
  • エラーメッセージと成功メッセージのアイコンをつける
  • マイページからの保有トレッタ一覧リンク実装
  • https対応
  • IEで見たときに詳細ページのテーブル見ため右寄せにずれ
  • ゲットボタンのjsにphpから値渡す時に全項目にしているのでセキュリティ的に最低限にしたい
  • URL変更分のリダイレクト設定 .htmlがつくURLは対応出来なかったがそれ以外は済

その間に更新した記事は以下です

CakePHP2.x https対応(全画面でhttpをhttpsにリダイレクトする)
CakePHP2.x https対応(全画面でhttpをhttpsにリダイレクトする)をしました。 環境 CakePHP2.10.2 ...
CakePHP2.x フレームワークで用意されたテストツールの使用方法・PHPUnit
CakePHP2.x系で公式マニュアルに従って、フレームワークで用意されたテストツールを使用してみました。その手順などを記録しておきます。 ...

2017/10/27-2017/11/17の開発記録

あとで調べる 5時間くらい?

いやー今回はあまり開発に時間をあてられませんでした・・・

開発しっぱなしで家の環境改善がたまってきたので家の環境改善を進めました。具体的には棚を買って作ったり物販出品が滞っていたものを一気に整理したり、キャンプブログのたまっていたストックを消化したりです。

あとはキャンプに2週連続行ったりしました。焚き火しながらブログ書いたりもしました。

がっつり開発したら、他のタスクがたまって、今度はそっちをがっつり処理というスタイルでやってます(今決めた

この間に対応したチケット

  • GoogleAnalyticsはデバッグ時除くようにする
  • ページの指定キーワードから関連するAmazonAssociateリンクを表示する
  • BitbucketからGitHub移行

大きくはAmazonのリンクです・・・。PHP初心者が作るようなことをようやくやりました。でも、これが使えるようになったので広告素材ができました。(設置するだけでは、よっぽどアクセス集めないと大した収益にはならないのは良くわかっているつもりですが)

最後に(非公開だったこのサービスについて)

今2017/11/17ですが、いったん最後にしちゃいました。たぶんこのプロジェクトはもう開発しないので。これをもとにして、別プロジェクトに組み込んでいったりはします。そうやって生きていくと思います。今のところ、ユーザ登録は発生せず、ユーザ数=管理人数=1という方程式が成立しています笑

この作ったサービスを公開していない理由なんですが、実は某ゲームに関連するサービスでしたので、あまり公にしなかったんですね。リアルであったことある人には言ったりしたのですが。しかもそのゲームが終わっちゃったんですね。しかもアーケード的なものなので、家でやることもほぼないという・・・でもキャラクターゲームで、他のゲームも出ていて、キーワードで流入っていうことは少しだけあります。

作った当初はこのCakePHPプロジェクトをコピーして、どんどん違うジャンルを量産してみようと思っていました。でも、技術的に覚えていかないといけない事とかもありますし、やってみたら結構あっさり新しい事出来たりする時代になってきたようにも感じます。昔は本だけだったけど、今は情報が充実していてほとんどネットで探せます。というか、ネットにあまりない事は避けるようにしています。それこそ本当に時間がかかっちゃうので。ですので、このCakePHPプロジェクトはポートフォリオのような実績として1個出来て良しとして終わりです。

次は、RubyOnRails+jQuery以外のjsでやってみたいと思っています。CakePHPもRailsを追っていますし、それならRailsを直接やった方が良いという声もあります。自分もRailsについて本を買ったりちょっと学び始めましたが、マイグレーションとかルートとかRubyのエコシステムなども含めてCakePHPより便利に感じています。また、フリーランスエンジニアに今年なったのですが、それのスキル幅を広げる為というのも大きいです。

自分のweb実績に関しては、まだ.NETとPHPしか業務でやった事がありませんし、PHP歴=CakePHP歴なので、流石にCakePHPはもうお腹いっぱいに近いです。CakePHPはver1系、2系、3系を全て業務でも家でも実績ありです笑。

いないと思いますが、もし見てみたい人がいらっしゃいましたら、こっそり教えますのでツイッターのDMでご連絡くださいませ。

ということでいったん締めます・・・

ありがとうございます!長い文章読ませてしまってすみません。だいぶお世話になりました笑

ここまで読んでくださったあなは僕にとってネ申です。

このプロジェクトで少しでも実績を積めた技術一覧備忘録

OS

CentOS6

CentOS7

webサーバ

Apache

DB

MySQL

MariaDB

バックエンド

CakePHP2.7

CakePHP2.10

PHP5.6

PHP7.1

フロントエンド

Twitter Bootstrap3

material design lite

jQuery3

CSS3

HTML5

開発環境

Vagrant

VirtualBox

git

Bitbucket

GitHub

backlog

その他

Ruby

スクレイピング

気持ち(だいじ