• 締切済み

Eclipse PHP フォーマットについて

開発環境 Eclipse for PHP Developers Eclipse ソフトを使って PHP ソースを書くのが初めてなので使い方を教えて下さい プログラムソースをすべて選択して [ shift ] + [ alt ] + [ f ] キー押すとフォーマットが実行できます @ はタブが入っています サンプルソース if ($test == 1 ) { @$str = "a"; } ツールバーのウィンドウ - 設定の中に PHP - コード・スタイル - フォーマットがありましたので 確認するとタブ・ポリシーのみ設定できるようになっています 自分はフォーマットの機能で下の通りしたいです サンプルソース if ($test == 1 ) { @$str = "a"; } フォーマットの詳細はどこにあるのですか? 宜しくお願いします

noname#132530
noname#132530
  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

調べてたけど、挫折した。 >フォーマットの詳細はどこにあるのですか? 特定の設定ファイルというわけじゃなく、Javaのソースコードで書かれている。 #Google先生によると、espjpさんは以前Q6669837で、C#の質問しているから Javaも苦戦せんだろうという前提で回答。 以前、こんな他人のEclipse(Java)の質問に答えたので、まず内容を把握して欲しい。 eclipseで単文のfor文の改行をしない方法 http://okwave.jp/qa/q6363687.html DefaultCodeFormatter extends CodeFormatter http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java?view=markup が、上記のCodeFormatterVisitorを使っている。「文法上これがある」「今のインデントはこれ」「だからこれを足す」という発想で作られていて見やすい。 …じゃあ、Eclipse(PHP)はどうなっているのかというと… http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.pdt/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/format/PhpFormatter.java?view=markup&root=Tools_Project#l135 *各行をformatLineメソッドにかける。 formatLineメソッドでは… *各行の最初にあるtokenが何であるかによってIIndentationStrategyを変更 *caseだったときは、CaseDefaultIndentationStrategy commentだった場合、CommentIndentationStrategy php close tag "?>"だったときはPHPCloseTagIndentationStrategy "}"だったときはCurlyCloseIndentationStrategyが返る。 http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.pdt/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/format/?root=Tools_Project *if構文にはcurlyclose"}"が含まれているから、利用したいきがする。 *curlycloseIndentationStrategyは対応する"{"を、"}"や"{"の数を数えることで探し、その時のインデントによって、整形を行う http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.pdt/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/format/CurlyCloseIndentationStrategy.java?view=markup&root=Tools_Project 問題点: 【そのopen curly braces { がifのものであることを前まで戻って確認する必要があるが、どこでやるべきか方針に自信が持てない】 【各curlyIndentationが公開するpublicメンバは、placeMatchingBlanksのみと思われるからここでできないと思う】 #PhpFormatterのif (/* endFormat >= end || */startFormat <= start && endFormat >= end) { あたり、何がやりたいのか分かってないんだよなー #[ shift ] + [ ctrl ] + [ f ] だと思うけど、まぁいいや。

関連するQ&A

  • Eclipseの設定

    Eclipseのエディタで複数のソースを開いている時、別のタブに移動したら「プロジェクト・エクスプローラー」(またはナビゲーター)ではタブで選択したソースファイルがアクティブになると思います。 現在開いているソースをエクスプローラーでアクティブにすると言うのは設定で無効に出来たりできますか? よろしくお願いします><

    • ベストアンサー
    • Java
  • eclipseの自動フォーマットの設定について

    eclipseの自動フォーマットは、 ctl+shift+f でソースコードのインデントを自動で整えてくれます。 しかし、/**/でコメントアウト下部分は、1行にまとめられ、文字列の塊となってします。 コメントアウトしたデバッグコードなどがこうなってしまうので元に戻すのに手間がかかります。 /**/でコメントアウトしてもインデントがそのままにしておく設定は有るのでしょうか。 eclipseのバーションは、3.4を使っております。 ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • phpのincludeについて

    お世話になります。 Apache/2.2.3 PHP5.1.6 のレンタルサーバを利用しています。 httpdocs   |___lib   |  |___test.php   |___index.php という構造にしています。 -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'lib/test.php'; echo $a; ?> --------------------- 上記の場合、index.phpには 「sample」と表示されます。 -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- 上記の場合、なぜか表示されません。 そこで「http://~~」はincludeできないのかなと思ったのですが -----test.php-------- <?php $a = 'sample'; echo $a; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; ?> --------------------- とすると、なぜか「sample」と表示されました。 この結果から、includeはできているみたいです。 なんとか -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- で「sample」と表示させたくて試行錯誤してみたのですが どうしても解決できません。 お力添えのほどお願いできればと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 別階層のPHP関数を使うには?

    php_sample ┣html ┃┗index.html ┗php  ┗com.php 上記の用にHTMLとPHPをフォルダ毎に分けようと思っているのですが index.htmlからcom.phpの関数を呼ぶにはどうしたらいいのでしょうか? 各ソースは以下の様に記述しております。 ※HTML側 <?php cm_sample("さんぷる"); ?> ※PHP側 function cm_printHtmlHeader($str_tmp) { print "文字列:".$str; }

    • 締切済み
    • PHP
  • phpのソースについて

    このソースはHTMLだと思いますが、phpファイルのときは、 ifを<?php?>で指定しなければいけませんよね? if $click[cnt]<>""} {$click[cnt]} <a href="click.php?num=10" utn>{$click[cnt]}</a> {/if} こちらは、{$click[cnt]}をクリックをしたらそのリンクを消えるようにする複雑な設定です。 ただ、これは、HTMLとphpの設定が一緒になっている可能性が高く、思うように動きませんが、なぜですか?スクリプト等の」違いですか?設定ミスですか?

    • 締切済み
    • PHP
  • eclipse3.6でコンパイルできません

    (環境) ・Windows7 Home Premium(64ビット) ・Pleiades All in One C/C++3.6.1.20101025(JREあり)  →C:\eclipse36内に展開 (問題) eclipse3.6(Pleiades)でC++のソースコードがコンパイルできません (状況) ・プロジェクト新規作成時の「ツールチェーン」には「MinGW GCC」の表示があります。 ・作成したプロジェクトのプロパティにはMinGWの項目が表示されません:  プロジェクトのプロパティ画面左にある「C/C++ビルド」項目内の  「設定」を選択したところ、右画面「ツール設定」のページにMinGWの項目が表示されていません (プロジェクト「test」のソースコード「test.cpp」) #include <iostream> using namespace std; int main(){ cout << "test" << endl; } ・上記ソースコードのビルド時に 「無効なプロジェクト・パス:インクルード・パスが見つかりません」と警告が表示されます。 (C:\eclipse\workspace\test\MinGW\include) 「Debug」フォルダ内には.oファイルや.aファイルは作成されます。 ・「Debug」フォルダ内の「test.o」を「実行」すると、 >プロセス開始中のエラー。 >プログラム "C:\eclipse36\workspace\test\Debug\test.o" を実行できません: 起動失敗 >プログラム "C:\eclipse36\workspace\test\Debug\test.o" を実行できません: 起動失敗 >プログラム "C:\eclipse36\workspace\test\Debug\test.o" を実行できません: 起動失敗 と表示されます。 ・「test.o」を「デバッグ」すると、 「Target request failed: Error creating process C:\eclipse36\workspace\test\Debug\test.o, (error 193).」 と表示されます。 圧縮ファイルを展開しただけで、何もしていませんので、 どう対応して良いか、皆目見当がつきません。 既出の問題かも知れませんが、ご教示いただければ幸いです。 よろしくお願いします。

  • Eclipse3.7 ショートカットキー挙動 設定

    Eclipse(pleiades3.7 Indigo)を使ってPHPの開発を行なっております。 以前まではEclipse3.3で開発を行なっていたのですが、開発環境の変化に伴ってEclipseをバージョンアップした所、ソース編集の挙動が以前と異なり、戸惑っております。 挙動としましては、ソース編集時に複数行を選択しコメントアウト(行毎のコメントアウト)のショートカットキーを押した際に、既にコメントアウトされている行と、されていない行のコメント化状態が入れ替わってしまいます。 私の望む挙動としましては、すでにコメントアウトされている行とされていない行が同時に選択された状態でコメント化を行った際は重ねてコメント化して欲しいのです。 例としましては、下記4行を選択(反転)してコメント化ショートカットキーを押した場合 ------------------------------------------ //テストコメント echo "test1"; //テストコメント2 echo "test2"; ------------------------------------------ 下記のようになって欲しいのです。 ------------------------------------------ // //テストコメント // echo "test1"; // //テストコメント2 // echo "test2"; ------------------------------------------ 現状では下記の様になってしまいます。(コメントが反転) ------------------------------------------ テストコメント // echo "test1"; テストコメント2 // echo "test2"; ------------------------------------------ ちなみにエディタはEclipse 3.7Indigoに標準で入っているPHP エディターを使っています。 開発に支障がでて非常に困っておりますので、どう設定すれば望む動作になるか、ご回答のほど何卒宜しくお願い致します。

    • ベストアンサー
    • PHP
  • javascriptとphpの変数のやり取り

    ある該当ページ(mtの検索結果ページ)が拡張子をphpにできず、 <script src=hogehoge.php></script>でphpファイルを読み込んで、 実行したいと思います。 phpを使用している理由はある変数を取得したいのですが、 今回は関係ないので割愛します。 ■以下ソース ・該当ページ(mt-search.cgi) <html> <head> <title>hoge</title> <script type="text/javascript" src="/hogehoge.php"></script> </head> <body> <script> document.write("<p>"+str+"</p>"); </script> </body> </html> ・phpファイル(hogehoge.php) <?php if(test == test){ $str = "成功" }else{ $str = "失敗"; } ?> <script type="text/javascript"> <!-- var str= "<?php echo $str?>"; --> </script> このようにしているのですが、 うまく出力されません。 php側の出力はうまくいっているようなのですが、 ブラウザ側の方でちゃんと変数がわたっていないようです。 画面は真っ白です。 ご教授お願いいたします。

  • htmlからPHPを呼び出す方法について教えてください

    <script type="text/javascript" src="/init.php"></script> 楽天商品検索APIを利用したブログパーツの作成をPHPにて行っております。 公開されているサンプルソースを元にブログ上に指定したキーワードの 検索結果を表示させるPHPを作成しております。 HTML側にてPHPを呼び出す際に、PHPに記述したHTMLのソースを document.writeで囲って出力しようとしておりますが上手くいきません。 呼び出し側 <script type="text/javascript" src="/test.php"></script> ■test.php <?php //PHPソース(省略) $str_test = 'zzzzz'; header("Content-Type: application/x-javascript; charset=UTF-8"); echo " document.write(\"<table width=\"100%\" border=0 cellspacing=1 cellpadding=5 style=\"font-size:12px;\">\") document.write(\" <tr style=\"background-color: #ffffff;\">\") document.write(\" <td width=\"8%\" align=\"center\" rowspan=\"4\">\") document.write(\" abcde\") document.write(\" </td>\") document.write(\" <td width=\"8%\" align=\"center\" rowspan=\"4\">\") document.write(\" $str_test\") document.write(\" </td>\") document.write(\" </tr>\") document.write(\"</table>\") "; ?> 上記の様にダブルクォートをエスケープしたのですが 呼び出し側には何も表示されませんでした。 document.writeにて下記の様に記述した場合は表示されましたので 上記ソースの何処かが間違っているのは分かったのですが そこから先に進めず困っております。 ■表示された例 echo " document.write(\"$str_test\") "; 解決策、別案などありましたらご教授いただけたら幸いです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • eclipseのインポート方法について質問です

    お世話になります。 サンプルソースなどをワークスペースにフォルダをコピーして eclipseにインポートする方法を教えて下さい。 (PHP) 「新規PHPプロジェクト」で「外部ソースからプロジェクトを作成」を行うと 【プロジェクトコンテンツをワークスペースに作成できません】と表示されて次に進めません。 又、 インポートで「ファイルシステム」を指定しても 【ソースは宛先の階層にあります。」と表示されてしまいます。 ネットで検索しても解決出来ず困っております。 宜しくお願い致します。

    • ベストアンサー
    • PHP