職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

自分自身にPOSTするには

2017年05月25日 | PHP
自分自身にPOSTするには


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3(PHPUnitが含まれている) 
PHP 5.5.9

【プログラムの訂正箇所】
サイト「PHPbookの投稿した内容を画面表示」のままだとエラーが出るので次のように改良した。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>PHP TEST</title>
</head>
<body>

<p>掲示板</p>
<form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>">
<input type="text" name="personal_name"><br><br>
<textarea name="contents" rows="8" cols="40">
</textarea><br><br>
<input type="submit" name="btn1" value="投稿する">
</form>


<?php
//初期化
$personal_name = "";
$contents = "";

//ポストされた時
if (isset($_POST["personal_name"])){
$personal_name = $_POST['personal_name'];
$contents = $_POST['contents'];
}


print('<p>投稿者:'.$personal_name.'</p>');
print('<p>内容:</p>');
print('<p>'.$contents.'</p>');

?>

</body>
</html>

とりあえず、if (isset($_POST[""])){}を使うことで、「Notice: Undefined index」エラーは出なくなる。

または、Noticeエラーだけを非表示にしたい時

1)○NOTICEを非表示に(php.iniで設定)
error_reporting = E_ALL & ~E_NOTICE

2)○NOTICEを非表示に(スクリプトで設定)
<?php
error_reporting(E_ALL & ~E_NOTICE);
?>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DOCTYPE宣言について

2017年05月17日 | HTML
DOCTYPE宣言について


・DOCTYPE宣言とは
その文書がHTMLやXHTMLのどのバージョンで作成されているかを宣言するもので、タグ言語の冒頭にDOCTYPE宣言をしなければならない。無いと互換モードで表示されてしまうため、必ず設置して置く

HTML5で書いたサンプル
<!DOCTYPE html>
<html>
<head>
<title>HTML5サンプル</title>
</head>
<body>
<p>HTML5で記述したサンプル</p>
</body>
</html>


■HTML4.01の3種類のDTD
1)HTML 4.01厳密型DTD(strict)
 <!DOCTYPE HTML PUBLIC "//W3C//DTDHTML4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

2)HTML 4.01移行型DTD(Transitional)
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

3)HTML 4.01 フレーム設定型DTD (Frameset)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

■HTML5の場合
<!DOCTYPE html>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

<?= は<?php echo のショートタグ

2017年05月16日 | PHP
<?= は<?php echo のショートタグ


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3(PHPUnitが含まれている) 
PHP 5.5.9

<?php echo のショートタグである<?=を使うには
php.iniのshort_open_tag = on の;を外す事!

ただし、< ?xml ~? >を短縮は出来ない。<?~?>はすべて<?PHP~?>に成ってしまう。
参照サイト→short_open_tagのON/OFF
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

phpの名前空間(namespace)に関する事

2017年05月08日 | PHP
phpの名前空間(namespace)に関する事


phpにnamespaceがあることが分からないことでMarkeGoodがわからなかった。超初心者なのでnamespaceを使ってクラスを作ったことがない。

よって、【PHP超入門】名前空間を参照してね。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPUnitをEclipseから実行できるプラグイン「MakeGood」

2017年05月04日 | Eclipse4.4
PHPUnitをEclipseから実行できるプラグイン「MakeGood」



【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.2(PHPUnitが含まれている) 
PHP 5.4.19
既に、Composerがインストールされ、Xdebug(このブログを見よ)が設定されている状態である事。
参照サイト→悠雀堂ブログ:PHPの開発環境を構築する(その4): PHPUnit+MakeGoodを使う

■MakeGoodのインストール方法
1)Eclipseを起動し、上部メニューから「ヘルプ>新規ソフトウェアのインストール」を選択

2)「作業対象」に「http://eclipse.piece-framework.com/」を入力し、その右の「追加」をクリック

3)「名前」は空白のままで構いませんので、「OK」をクリック

4)「MakeGood」を選択し、下方の「次へ」をクリック

5)ライセンスを確認し、「使用条件の条項に同意します」をチェックして、「完了」をクリック

6)証明書を信頼するかどうかのダイアログが開きます。「すべて選択」をクリックしてチェックを入れてから、「OK」をクリック

7)再起動のダイアログが表示されるので、「OK」をクリック

8)再起動したら、メニューより「ウィンドウ>ビューの表示>その他」を選択
9)MakeGoodを選択して「OK」をクリック

10)MakeGoodビューが追加される


■プリロードスクリプトの作成
プロジェクトディレクトリ直下に「preload.php」という名前で作成する
<?php
require_once 'C:\pleiades\xampp\php\vendor\autoload.php';
(自分の環境に合わせる)
?>
また、testフォルダーを作って置く
■MakeGoodの設定
PHPエクスプローラーにてプロジェクトが選択された状態で、メニューより「プロジェクト>プロパティー」を選択します。するとプロパティーダイアログが開きます。
左側メニューより「MakeGood」を選択します。

「テストフォルダー」の右の「追加」をクリック


テストドライバのフォルダを選択し、「OK」をクリックします。
さらに「プリロードスクリプト」に、先ほど作成したpreload.phpを設定します。
以上でMakeGoodの設定は完了です。プロパティーのダイアログも「OK」をクリックして閉じます。

■phpunit-skelgenの組み込み
メニューより「実行>外部ツール>外部ツールの構成」をクリックします

「プログラム」が選択された状態で、左上の新規構成ボタンをクリックします。すると「プログラム」の下に「新規構成」が作成されます


右側のペインにて名前を「phpunit skelgen」のように入力します。また「メイン」タブにて以下の設定をします
•ロケーション : C:\pleiades\xampp\php\vendor\bin\phpunit-skelgen.bat
•作業ディレクトリ : ${project_loc}
•引数 : generate-test ${string_prompt:namespace\class} ${selected_resource_loc}

これらは、テスト対象のクラスからテストドライバを生成するための設定です。(引数のgenerate-testの替りにgenerate-classを指定すると、逆にテストドライバからソースのスケルトンが生成できるようです。)

続いて「リフレッシュ」タブをクリックします。


完了時にリソースをリフレッシュ」にチェックをして、「選択されたリソースを含むフォルダー」を選択します。

続いて「共通」タブをクリックします


お気に入りのメニューに表示」の「外部ツール」にチェックを入れ、「適用」をクリックします。
以上でphpunit-skelgenの組み込みが終了しました、「閉じる」をクリックしてダイアログを閉じます。

■テスト
テストドライバがないのでphpunit-skelgenでスケルトンを作成します。尚phpunit-skelgenが対応しているのはクラスのみなので、関数がテスト対象の場合は手動で作成します。

テストドライバのスケルトンの作成
PHPエクスプローラーより、テスト対象のクラスの入ったphpファイルをクリックして選択します。そしてメニューより「実行>外部ツール>1 phpunit-skegen(1)」を選択

クラス名を訪ねるダイアログが表示されますので、テスト対象のクラス名を入力し、「OK」をクリック

すると選択したファイルと同じフォルダに「(クラス名)Test.php」というファイルができます。これがテストドライバのスケルトンになります。

このファイルを右クリックし、「リファクタリング>移動」を選択してテストドライバ格納フォルダ以下に移動します。

■テストの結果
PHPエクスプローラーよりテストドライバをダブルクリックしてコードを表示してやると、テスト対象のクラスのNewがエラーになっています。そこでクラス宣言より上(namespaceよりは下)に、require_onceをかいてテスト対象を読み込んであげます。

require_once '(テスト対象へのパス)';

保存すると、問題ビューにエラーが表示されます。

何事かと思いますが、保存したときにMakeGoodが自動的にテストを実行して、未実装のテストケースのmarkTestIncompleteメソッドをエラーとして表示したようです。(問題ビューだと「エラー」扱いですが、MakeGoodビューでは、テストの失敗ではなく、エラー扱いです。)

とりあえず一つのケースだけ実装して、保存します。するとテストが自動的に走ります。


MakeGoodビューを見ると、成功が1になっています。

またビューを拡大して「テスト結果」を見ると、成功したケースの左にはチェックが付いています。失敗が×、エラーが!になりますので、コーディングフェイズでは×がないことを目標にします。また×と!はコードビューにも表示されます。

以上、
操作について今ひとつわからない

■デバック
Xdebugの操作と同じです

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする