ど素人によるwebサービス開発日記

ウェブの構造もわかっていない超初心者ですが、Webサービスを開発中です。調べたこと、学んだことをまとめていきます。

セキュリティを考慮したログイン機能をPHPで作る方法その3-エラーの修正編

トラブル発生

今までダウンロードしたファイルに基本設定を施してきたので、ここらで一度動かしてみようと思ったら、、、

f:id:hajimetenoweb:20150607165150p:plain

Class'Fr\LS'が見つからないって。気づくの遅い??

見つからないって言われたけど、そもそもこのClass'Fr\LS'って何を表してるかあまりわかっていなかった。基本に戻ってコードを見ていこう。

基本1.class.logsys.phpに全ての関数やら変数やらの定義が書いてある

このファイルにログイン機能の基となるコードがまとめられていて、バージョンアップがあれば、ここのファイルを差し替えるだけで良いようになっている。

つまりこのclass.logsys.phpのファイルは触らない。

じゃあ、どうやってそのファイルを使っていくかというと、config.phpというファイルを作り、include関数という外部のファイルを読み込ませる関数を使ってclass.logsys.phpを呼び出す。

<?php
include "class.logsys.php";

そして、他のファイルで使う時はconfig.phpを読み込ませるという流れ。

基本2.namespace関数とクラス

Class'Fr\LS'のFrはclass.logsys.php内にて下のコードで定義されています。

<?php
namespace Fr;

 namespace関数。名前はFr。namespace関数は日本語で名前空間という超直訳された名前の関数です。関数とか変数の名前ってそれぞれつけていくと、やれあそこでその名前使ったからここでは使えない、など面倒なことになるらしいので、もう関数とか変数とか一つにまとめた場所で名前つけよーぜ、みんなーここにしゅーごー的な関数らしい。

もっと賢い解説はこちら。

では続いて、Class'Fr\LS'のLS。これはクラスの名前。

このLSというClassにログイン機能で使う予定の関数とか変数がまとめて入ってます。

クラスに関する基本事項はこのサイトを参考にしました。

[PHP]クラスの基礎 メンバ変数とメンバ関数 | PHP Archive

エラー解消!

コードをじーーーーーーっと見つめながら格闘すること3時間。遂に解決の時を迎えた。

問題があったのは、config.php。一番初めのまさに出だし。

<?

include "class.logsys.php";

 <?の続き、PHPってはいってないやん!!!!!!!!!

えーーーーー、そこーーーーーー????( ゚Д゚)

 

今さっき、振り返りしながらこのブログのためにinclude部分引用して気づいたわwww

 

慌てて<?phpに直したら、今度は以前エラーが出ていた時消config.phpの=>を=に変えてみたのを直せって。

\Fr\LS::$config = array(
"info" => array(
"company" => "Subin's Blog Demos",
"email" => "mail@subinsb.com"

以下省略。演算子が続く限り=>に戻す。

 ですよねーーーー。

ということで、なんとか動き始めました。

 

ファイルはちゃんと自分で責任をもって見ないとだめですね。汗

セキュリティを考慮したログイン機能をPHPで作る方法その2-設定編(PHP Secure, Advanced Login Systemというサイトの翻訳)

セキュリティを考慮したログイン機能をPHPで作るべく、このPHP Secure, Advanced Login System - Subin's Blogブログに載っているチュートリアルに沿って進んでいます。

前回はまずファイルをダウンロードしましたが、このままではまだ使えません。

今回は設定をしていきたいとおもいます。

設定の種類

Setting up

You have to configure logSys first to continue. You have two options to change configurations. See about it here on the "configuration" section.

設定をするには2つの方法があるよ。このページ見てみて。

 とのことだったので、リンク先The Francium Project - Subin's Blogに行ってみると、

Configuration 設定

1. Custom Config

For this, you can make an array into the variable "config". You do this by making another file like "config.php" and including it instead of the class file.

Then, you include the above file in pages instead of "class.logsys.php" file. I recommend this custom config, because you can then easily update the class when a new version come out.

"config.php"を作って、そこからカスタマイズする方法。で、"class.logsys.php"を読み込ませる。これだと新しいバージョンが出た時も簡単にアップデート出来るよ。

2. Change Default Config 

You can directly change the values of the "\Fr\LS::$default_config" in the class file, so you won't need to make another file for custom configuration. But beware, when you're updating to a newer version of the class, be sure to reupdate the default configuration again.

デフォルトのファイルをいじることもできるけど、バージョンアップの時面倒だからやめとけば?

 とのこと。config.phpファイルはダウンロードしたファイル一式の中に入ってたから、これを作ってカスタマイズしろってことね。

設定内容

<?
include "class.logsys.php";
/**
* This configuration is for Subin's Blog Demos page
* running on RedHat's OpenShift server
*/
\Fr\LS::$config = array(
"info" => array(
"company" => "Subin's Blog Demos",
"email" => "mail@subinsb.com"
),
"db" => array(
"host" => "localhost",
"port" => 3306,
"username" => "username",
"password" => "password",
"name" => "database_name",
"table" => "logSysUsers"
),
"keys" => array(
"cookie" => "myCookieKey",
"salt" => "MySaltKey"
),

 config.phpを開いて、この青字部分を自分で変更しろって。

Make sure the secure keys for both hashing passwords and cookies are different and secure. Don't let anyone know them.

パスワードとクッキーは違うやつで、難しいやつにしとこ。あ、内緒ね。

データベースでテーブルの設定

テーブルをまだ作っていなかったので、新しくデータベースを作ってusersというテーブルを作成します。

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(10) NOT NULL,
  `email` tinytext NOT NULL,
  `password` varchar(64) NOT NULL,
  `password_salt` varchar(20) NOT NULL,
  `name` varchar(30) NOT NULL,
  `created` datetime NOT NULL,
  `attempt` varchar(15) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

https://subinsb.com/php-logsys

サイトの教えどおりにコピペして作ることにしました。自分で好きなもの付け加えたりしてもいいらしい。

そして、パスワードをリセットする時のトークン用テーブルも作成するらしい。

CREATE TABLE IF NOT EXISTS `resetTokens` (
 `token` varchar(40) NOT NULL COMMENT 'The Unique Token Generated',
 `uid` int(11) NOT NULL COMMENT 'The User Id',
 `requested` varchar(20) NOT NULL COMMENT 'The Date when token was created'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

https://subinsb.com/php-logsys

The reset password token saving table should be called "resetTokens". It is not changeable. If you really want to change it, find the SQL queries in the class file that uses the "resetTokens" table and replace it.

リセットトークンのテーブルは絶対"resetTokens"で、変えちゃだめ。もし本気で変えたかったら、SQLクエリーをファイルから探して勝手にして。

二つのテーブルを言われるがままに作成しました。

そして、テーブルが出来たところで上のconfig.phpのデータベース名とテーブル名も変更しましょう。

その他のページの設定

Initialize

Redirection based on the login status is needed for a login system. You should call the \Fr\LS::init(); at the start of every page on your site to redirect according to the login status. and continue with your HTML code. 

ログイン機能はredirectさせる設定をしなくてはいけないので、あなたのサイトの全てのページの最初の部分で、\Fr\LS::init();を呼び出してあげて。その後HTML続けていいから。

When a user not logged in visits a page that is not in the "pages"->"no_login" array, the user gets redirected to the login page mentioned in "pages"->"login_page" config value. If the user is logged in and is on a page mentioned in the "pages"->"no_login" array, he/she will be redirected to the "pages"->"home_page" URL.

もしユーザーがログインしないでページに来たら、home_pageURLに強制送還されるようになるよ。

 コードはこちら。このコードを全てのページの一番最初の部分に張り付ける。

<?php
require "class.logsys.php";
\Fr\LS::init();
?>
<html>

 

https://subinsb.com/php-logsys

画面上でコードが丸見えな件とエラーの件

先ほどまでこの画面のように、画面上でコードが丸見えの状態だったのですが、なんとなくconfig.phpないのすべての=>の記号を=に変えたら、消えてくれました。

=>は連想配列用のダブルアロー演算子というものらしく、絶対意味があるはずなので、本当は他にベストな解決方法があるんだと思います。良い子は真似しないでください。

 

f:id:hajimetenoweb:20150607101333p:plain

あとindex.phpのparrとかidとか知らないけど?ってお知らせが出ていたので、

<center><h1><?php echo $parr[$id]['title'];?></h1></center>を

<center><h1>To Do List</h1></center>と勝手にシンプル化してみました。

 

ということで、現在の画面はこちら。

 

 

f:id:hajimetenoweb:20150607131923p:plain

自分のブックマークを世間様に晒して少し恥ずかしいです。

 

セキュリティを考慮したログイン機能をPHPで作る方法その1-導入編(PHP Secure, Advanced Login Systemというサイトの翻訳)

こんにちは。To doリスト機能の付いたSNSサイトを作るべく、壁にぶち当たりまくっているW子です。(そんなサイトもうあるなんて言わないで。涙)

会員を募る以上、セキュリティ的に安心なログイン&新規登録画面を作りたいと思い、試行錯誤しております。

 

そもそも初心者の私が本当にセキュリティ面でしっかりしたコードを書くのは、まだ自信がない。(いつかは出来るようになるのかな。遠い目)

そんな私に今ある選択肢は、本やwebサイトを参考にする、ということ。

 

ただ購入した本に載っているとおりだとセキュリティが甘いし、ドットインストールのチュートリアルも機能的に足りないし、同じようにやってもエラーが出たり。

そんな中一番機能が理想的で、コードを公開していたのがこちら。

英語のサイトでした。。。涙。

プログラミング用語もわからないのに英語なんて。。。(*´Д`)ムリ

 

しかし、コードが公開されているのにお借りしない訳にはいかない!

自分で一から作るのはもっと(*´Д`)ムリということで、ざっくりと日本語に訳しながら、ログイン機能を作っていきたいと思います。

青字部分は私の意訳ですので、参考にしてくださる際は、怪しみながらご覧ください。本家のサイトと並行してご覧いただけると有り難いです。

 

はじめに

We all get new ideas every day. With the idea, we build more and more sites. Mostly, the sites would have a login system, right ? So, when we create new projects (sites) every time, we will have to create login systems for each one. I do the same thing and I'm tired of creating the same thing over and over again. So, I decided to create a login system that can be integrated to any PHP powered sites.

毎度毎度新しいサイト作るたびにログイン機能作るの面倒だから、どのサイトでも使えるログイン機能つくってみた。

つくってみた後公開までしてくださっているなんて、神。このログイン機能のまとめファイルをダウンロードして、自分のサイト用にカスタマイズしていきます。

 機能

  • Login & Registering ログイン&登録
  • Remember Me or not feature このIDを記憶する
  • Secure (uses PDO & hashes) PDOとハッシュを使った安全さ
  • "Forgot Password ?" feature パスワード忘れた?機能
  • Change password functionality パスワード変更
  • Custom fields for users' details storing table カスタマイズ出来るユーザー詳細入力テーブル
  • Extra Tools such as E-Mail validation and Random String generator 他にも機能あるよ。eメール承認やランダムなパスワード発生とか
  • Easily get user details 簡単にユーザーの情報ゲット
  • Update users' details easily アップデートするのも簡単
  • Auto redirection based on the login status of user 自動redirectionも
  • Show time since user joined ユーザー登録された時間も出たり
  • Protection from Brute Force Attacks ブルートフォースアッタクからも身を守れたり
  • Disable login attempts for fixed time after failed 5 login attempts 5回ログインできなかったら一定期間ログインできなくしたり
  • Configure how cookie should be created (April 6, 2015) cookieも設定おk

 盛りだくさんな機能( ゚Д゚)この機能を全部自分で考えるのは大変だから有り難い。

ダウンロード&インストール

Download & Install

You first have to download the class file and put it in the root of your project directory or wherever you like. You can download/see the class file here. Paste the code in a file called "class.logsys.php".

とりあえずファイルダウンロードして、公開ディレクトリのルートの中のどこかにいいれるか適当に入れて。ここから見れるよ。class.logys.phpにコピペして。

ダウンロードボタンからダウンロードするとZipファイルのリンクに行き、class.logys.php以外のファイルもまとめてダウンロードできます。

一応ダウンロードファイルのリンク場所貼っておきます。

Download - Subin's Blog Demos

で、hereの部分からはgithubにリンクが飛ぶのですが、そこには最新のコードが載っているのでclass.logys.phpを開いてコードをまるっと書き換える。

githubのリンク先はこちら。

logSys/class.logsys.php at master · subins2000/logSys · GitHub

私の見た段階では670段目当たりのコードが微妙に変わっているようだったので、githubのコードをコピペしました。

導入

Introduction

For this tutorial, we use the table as "users" (which is changable). You can set or view the configuration with this variable :

テーブルはusersっていう名前にするか勝手に変えて。この下の可変何か(関数?変数?メソッド?)で設定を決めたり見たり出来るよ。

\Fr\LS::$config;

The values available for configuration can be seen in this post on another section.

この結果はいろんなとこで見れるよ。(なんのこっちゃい( ;∀;)?)

The user can either use E-Mail or username for logging in. Only condition is that the email column of the users table should be "email" and not anything else. It's better if you use this Database structure :

ユーザーはログインする時eメールからでもユーザーネームからでもどっちでもログインできるよ。でもデータベースにテーブル作る時は絶対email用のコラムの名前をemailにしてね。データベースはこんな感じで。

id | username | email | password | password_salt | name | created | attempt

The columns "id", "username", "password", "password_salt" is absolutely required for the basic setup of logSys. Other columns are for optional features like "Login with E-Mail & Username", "Time Since User Joined" and "Brute Force Protection".

"id", "username", "password", "password_salt"だけは絶対入れて。他は適当に。

You can easily set up the Database table by reading the "Database Table Setup" section of this tutorial. Login by username and E-Mail can be enabled by setting "email_login" to boolean TRUE.

ま、わかんなかったら"Database Table Setup"でも読んでみて。とりあえず、booleanていう論理型使ってTRUEかFALSEどっちなの?的なコード書いてるから、その中で"email_login"がTRUEであれば、ユーザーネームとemailでログインできるし。

Return values of logSys functions are booleans. So use === operator instead of ==. logSys creates and use only 2 cookies. They are "logSyslogin" and "logSysrememberMe".

logSys関数のバリューの返り値もbooleanってことで。演算子(operator)は===を使ってね。==はだめだから。logSys関数はcookie2つしか使わないから。"logSyslogin" と "logSysrememberMe"やで。

In this post, we assume that you use "custom configuration" and not the other method to configure. Therefore there will be no including "class.logsys.php" file, but "config.php". Don't know what I'm talking about ? You haven't read this.

このブログでは設定をカスタマイズしてもらうから、最終的に今の"class.logsys.php"ファイルはなしにして、"config.php"ファイルを作ってくから。わからなかったらこれでも読んで。(わからないので、後で読みます。)

Make sure you read the next portion carefully and change the config values accordingly.

諸々気を付けてやれ。 

導入部分で既にわからなかったから、とりあえずファイルをダウンロード&解凍して、htdocs内にtesttodoとファイルの名前を変えて入れてみた。

今のところ画面はこんな感じになったよ。

f:id:hajimetenoweb:20150607101333p:plain

エラー出てんで( ゚Д゚)。なんでやねん?

ちなみにテーブルは後で出てくるからまだ作ってないで。

 

長くなってしまったので、今回はまず導入編でした。次回は設定等々に進めたら、、、いいな。

 

CakePHP カウントダウンタイマーを付ける方法まとめ

ただいまCakePHPでWebサービス開発中のW子です。

 

今日はサイトにカウントダウン機能を付け加えたい、という話。

CakePHPでカウントダウンってどうするんだろう?と思い調べていると、PHPよりJavascriptで作る方がいいらしいってことが判明。

 

超初心者メモ←私向け

PHPはサーバーサイドの動的言語

Javascriptはクライアントサイドで動きを出す言語

例えば、ブログとかサイトの画像が切り替わったり、サイトの右端にあるGo to TOPみたいなアイコンだったりはJavascriptで作られている。

 

そこで登場するのがjQuery。

ざっくりとしたイメージ、jQueryとはJavascriptを簡単に使えるようにした、PHPで言うところのCakePHPみたいなもの??だろうか。

 

ではどうしたらjQueryをCakePHPで使えるようになるのか。

  1. jQueryをダウンロードし、htdocs/ファイル名/app/webroot/jsの中に入れる
  2. LayoutかViewのどちらかを選び、ファイルに書き込み、Viewで指示を出す

以上が大まかな流れとなる。

 

CakePHP and JQuery ( 1 )

初めての[CakePHP2.x]での開発、そして挫折するまで日記~その6 jQueryの読み込み | 日々の覚書…日常のことも少しだけ

 

早速カウントダウンタイマーを表示させてみよう!

 

jQuery Countdown を使ってカウントダウンタイマーを表示する | バシャログ。

jQueryカウントダウンタイマー【デザイン自由自在版】 | Web制作・Webシステム(東京)の株式会社ワイワイエンジン

 

Webサービス開発超初心者が選ぶべきプログラミング言語はこれだっ!

こんにちは。ただいまTodoリスト+SNSのwebサービス開発中のど素人です。涙

 

世の中にはHTML、C言語、Javascript、PHP、Rubyなどなどプログラミング言語と呼ばれるものは数あれど、何を選んでいいのかわからないー!という超初心者の私が、一か月の猛勉強を経て、初心者が選ぶべきプログラミング言語の結論を考えてみたよ。

まずはプログラミング言語を選ぶ前に、Webアプリケーション、サービスとは何か、そしてそのWebアプリケーションはどうやって動いているのかを理解する必要がありそうです。

 

Webアプリケーションてなんだっけ?

Webアプリケーション」とは、「Webの仕組み・機能を使ったインターネット、もしくはイントラネット上で提供されるアプリケーションソフトウェア(プログラムの集合体)」のこと。要するに、Webサーバに配置したアプリケーションを、Webブラウザなどのユーザーエージェント(「サーバ」に対して、「クライアント」のPC・携帯端末上)で利用できるようなソフトウェアのことを指します。

Webアプリの常識をJSPとStrutsで身につける(1):いまさら聞けない、Webアプリケーションの常識 (1/2) - @IT

詳しく図解付きで解説があるのでわかりやすいサイトです!

 

そもそもなんでwebサイトって見れるの?

私たちがこうやってwebサイトを見ているのは、次のような流れで情報が送られています。

Webクライアントから始まって、アドレス欄にURLを入力し、
Webサーバーに対して見たいページ情報を送り「リクエスト」ます。
Webサーバーはそのページ情報を内部に保存して、Webクライアントにデータを戻す、「レスポンス」することによって、そのWebクライント上でページが表示される仕組みになっています。

Webアプリケーションの仕組み

ここで言うWebクライアントとは、ざっくりいうとクライアント=私たち(雑すぎました)、もう少しいうと私たちがパソコンやスマホで開いたGoogle ChromeやInternet Exploreのこと。

つまり、それぞれのWebサイトの情報はサーバーに保管されていて、ChromeやIEで探してきて表示されているってことらしい。

 

プログラミングってなんだろう?

Webサービスを開発する=プログラミングをするってことはわかっているものの、まだどんなことをするのか具体的なイメージが湧かない。そんな時にはこのサイトを読んでみよう。

 プログラムって何だろう? PHPってどういうもの? プログラミング未経験から始めるPHP入門(1) (1/3):CodeZine

今まで何気なく見ていたWebサイトは、1枚1枚のページの積み重ねで(当たり前かもしれないけど、今まで全然気が付かなかった!!というか、そんなことに思いを巡らせたことがなかった。。。)、そのページには静的、動的ページの2種類があって、動的なページを作ることによってWebアプリケーションが完成するんだな、と漠然と納得してみる。

 

プログラミング言語の種類とざっくりイメージ

世の中にはたくさんのプログラミング言語が存在します。

有名どころでは、C、C++、Java、PHP、Python、Ruby、Perl、C#、Visual Basic、Objective-C、JavaScriptなどがあります。どれも人気と実績を兼ね揃えた、頻繁に利用されている言語です。

 第1回 プログラミング言語がたくさんある理由 | Think IT(シンクイット)

本当にありすぎて困るわwww。

 

日本の2大巨匠PHPとRubyを比較

Webアプリケーションを開発したいなら、動的サイトをプログラムするための言語(サーバーサイドの言語)を使う必要がある。

日本ではPHPとRubyが人気らしいので調べてみた。

PHPはもともとWebのために開発された言語で、簡単なWebページから本格的なWebシステムまで、非常に多く採用されています。

ドキュメント類が豊富なうえ、その多くが丁寧に日本語翻訳されています。開発者が多い理由に一つでもあります。開発側からすると、最近は安価なレンタルサーバでもPHPが組み込まれているため、「納品されたソースコードをFTPで置けば動く」「コマンドラインを触らなくても一通りのことができる」のは、サーバ管理スキルが不要という点で大きなメリットです。

 

 RubyでWeb開発と言えば、Ruby on Railsフレームワークを使うのが主流です。

Railsはその登場当時から一貫したポリシーによりアップデートを重ねており、現在ではあらゆるWebシステムへ対応できる基盤になっています。ノウハウの蓄積により、他の追随を許さない開発効率を実現しています。

PHPとRubyを徹底比較!開発効率をあげて収益を増やす | TechRacho

 

フレームワークとは?

PHPでもRubyでもフレームワークに沿って開発するのが主流のようなので調べてみた。

PHPにはCakePHP、Laravelなど、RubyにはRuby on Railsというフレームワークがある。PHPのフレームワークをまとめてみたよ。

 

 

 Laravelを使ってみたよ

LaravelはPHPフレームワークの中で新しいフレームワークではあるものの、今世界で一番選ばれているらしい。つまりきっと一番使いやすいに違いない!と推測し試してみた。

 

 

なにせ日本ではまだ情報が少なすぎた。初心者すぎる私には本を読んでも理解できず、インストールの時点でギブアップという残念な結果に終わった。

 

CakePHPを使ってみたよ

情報の少ないLaravelで早くも挫折した私。次は日本で一番ユーザーの多いCakePHPを勉強してみることにした。

確かに情報はすごく多い。本でもネットでも。

 

 

 

 

 

 

 

し、しかーーーーーし、CakePHPを初心者が理解するのには一つだけ重大な欠陥があった。

それはバージョンによって、コードが変わりすぎいて、古いバージョンを新しいバージョンに書き換える作業が大量発生したこと。

初心者でなければ簡単なのかもしれません。涙。勉強にはなりました。

 

で、私の結論

生のPHPで書く。フレームワークなんていらねぇよ、夏。

PHP自体は巷の達人たちに「やさしめ」と言われているとおり、本を読めばなんとなく理解できる手ごたえがありました。(Ruby使ってないくせに、わからんやろwww)

CakePHPでフレームワークという壁にぶつかりまくるくらいなら、いっそのことフレームワークなんてやめてしまえっていう。小規模開発ならそれでもいいらしいです。

私の目標は1か月でWebサービスを完成させることなんだから、言語の習得に時間をかけるべきではない。

よって、もう目移りしないでPHPで書き続けることにします!!

初心者がTo doリストにSNS機能が付いたサイトを作るまでの道のり

To doリストで目標管理が出来るサービスにSNS機能が付いたサイトを作りたいのですが、如何せん初心者すぎて、どのようにサイトを設計していけばいいのかわからない。。。

具体的なイメージが持てれば、必要なページ設計もわかってくるかもしれないと思い、私の目標をウィプル カレンダーというアプリとStudyplusという勉強系SNSのコンビネーションという壮大なゴールを目指すことにした。超無謀だなんて。。。言わないで( ;∀;)

千里の道も一歩から。早速サイト完成までの道のりをまとめてみました。

 

  1. プログラミング言語を決める
  2. ローカル環境を整える
  3. テキストエディタをダウンロードする
  4. To doリスト機能を作る ←イマココ
  5. ログイン機能を作る
  6. SNS機能を作る

ざっくりすぎますが、こんな流れでしょうか。

 

1.プログラミング言語を決めるの結論はこれ!

 

2.ローカル環境を整えるはこちらから。

 

 

3.テキストエディタのダウンロードは、Sublimeを選択。

 

現在、4.To do リストを作るに取組中。本当は一度CakePHPを使って作ってみたものの、挫折。初心者らしくシンプルにフレームワークを使わずにコードを書いてみることにします。

 

 

随時更新。

 

諸先輩方で何かお気づきのことがございましたら、どうぞ教えてください。

m(__)m

また、私が勉強していった内容が他のかたの少しでもお役にたてれば嬉しいです。

 

CakePHPでTo doリストを作る

最近気づきました。プログラミングでわからないことを調べるのに、英語で調べると日本語よりもいっぱい検索結果が出てくることに。。。

未開のプログラミング言語とともに英語とも格闘しなくてはならぬとは(*´Д`)

 

なぜそんなことを思ったかというと、To doリストをCakePHPで作りたくてお手本を探していたら、とてもわかりやすい英語のサイトを見つけたから。

そんなわけで、早速下記サイトを見ながら、To doリストを作成していきましょう!

 

CakePHPで高速Webアプリ開発:連載|gihyo.jp … 技術評論社

このサイトで紹介されているルールから変更があるので、上のサイトに加えこの下のサイトを参考にしました。

はじめてのCakePHPアプリでハマった箇所の対応方法 - t-taira blog

  • Controllerのファイルの命名は、Tasks_ControllerではなくTasksControllerにすること。
  • Modelでfindallはもう使えない。

メソッドの記述方法の変更は、この下のサイトを見ながら学ぶとわかりやすいです。

[PHP] 初心者のためのPHP入門演習 第7回 CakePHPのModelを利用 | offsidenowの日常を綴ったブログ

データを取得する — CakePHP Cookbook 2.x ドキュメント

  • Viewのファイルはthtmlではなくcptで保存。

また、今のcakephpはForm Helperなるものが存在するため、コードを書き換える必要があります。

Form Helperについてはこのサイトと公式サイトを参考にしました。

CakePHP2 Form ヘルパーによるフォーム生成を勉強します♪ | oki2a24

この英語のサイトも情報は古いけれど、参考になりました。

All About Web: A TO-DO List Application using CakePHP

Create a Quick Application in CakePHP: Part 1 | PACKT Books

 

 

 

命名規則については、こちらのサイトを参考にさせていただいています。

cakePHP2.xの命名規約 | CakePHP2.1初心者メモ