EclipseでPHP関数のコード補完ができなくなったとき

プラグイン入れたり抜いたりしたとき、プロジェクトを他からコピーしたときなどに起きがちなこれ↓の解決法がやっとわかりました。

コード補完できないよー(> <)
Ctrl+Shiftが標準の関数にだけ利かない。プロジェクト内にある関数には反応するのに・・・。
2012/10/01追記


というのを教えていただきました!
直接手書きするよりはるかに安全ですね…(笑

確認するところ

  1. Eclipse上のPHPプロジェクトになってるか確認
    違ってたら新規PHPプロジェクト作ってソース移動するのが手っ取り早そう。というかこの状態だとたぶんプロジェクト内の関数にも反応しないはず
  2. プロジェクト直下の.buildpathファイルの中に
    <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>

    があるか確認
    無ければbuildpathの子として追加する。
    例)

    <?xml version="1.0" encoding="UTF-8"?>
    <buildpath>
    	<buildpathentry kind="src" path=""/>
    	<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
    </buildpath>
    

Eclipseの再起動をお忘れなく。

再起動後はこんな感じでプロジェクトに追加されてるはず。

プロジェクトの中に、PHP Language Libraryが出ました。
プロジェクトの中に、PHP Language Libraryが出ました。
出るようになりました。
出るようになりました。

興味本位で(eclipseインストールフォルダ)/plugin/org.eclipse.php.core_バージョン.jarをzip解凍すると、中に

コード補完用のファイルが!
コード補完用のファイルが!

PHP関数でF3とか押したことある方ならお気づきと思いますが、
プロジェクト内のものには利くってところがミソで、要はスコープ範囲にないだけなんだろうなあと思っていたんですけど、こういう風になっているんですね。

今日のヒント:
新規PHPプロジェクトの管理用ファイル(.projects/.buildpath/.settings)と問題のあるプロジェクトの同ファイルをWinMergeした。

[さくらvps]yum updateしてからRedmineのメール配信がこなくなったら

結論から言うと、configration.ymlのdelivery_methodを :sendmailにして解決しました。

うっかりyum update実行してRedmine2.0.2/2.0.3からメールが配信されてこなくなってあせった。
メールサーバーの拒否リストにでも乗ったかと思って、違うアドレスで試したけどそちらも×。

メール配信処理はRedmine的には成功してて、(redmineルート)/log/production.logにはこういうのが出てたけど正直よくわからん…

DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically. Please define instance methods directly in CollectiveIdea::Acts::NestedSet::Model instead. (called from include at /var/lib/redmine/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb:58)

/var/log/maillogには配信しようとしたログ自体が残ってない。

前までどうだったかは記憶に無いのだけど、一応アップデート後は

$ postconf mail_version
mail_version = 2.6.6

だった。

(redmineルート)/config/configration.ymlでdelivery_methodを :async_smtp(非同期)にしていたので、:smtp(同期)へ変更してみる。

http://(サーバ)/redmine/settingsの右下からテストメール送る。
画面上にエラーが出た。

postfix側の問題かと思って

$ echo "test" | mail -s "test" "hoge@example.jp"

すると問題なく送信&受信できた。

ついでなので、sendmail送信も試してみる。
(ローカルユーザー[user]宛)

$ sendmail user
From: user
To: user
Subject: This is test mail.
test
.

userのメールボックスに届いた。

で。
configration.ymlのdelivery_methodを :sendmailにするととりあえず配信されるようになりました。

原因探らないといかんけど、とりあえずはこのまま動かす。

さくら共有サーバSVNからローカルgitにgit svn cloneするとき

何度もパスワード聞かれて、ちょっと目をはなした隙にタイムアウトしよるので、
なんかいやっても!なんかいやっても!リビジョン900程度のリポジトリがgit svn cloneできませぬ。

そんなわけでSVNリポジトリはサーバ上で

svnadmin dump (サーバーSVNリポジトリフルパス) > ~/repos.dump

としてrepos.dumpファイルをFTPから落とします。

■ローカルPC上に
Subversionを入れて、リポジトリをつくって

svnadmin load (ローカルのSVNリポジトリ) < repos.dump

としてさきほどのdumpを取り込み…

ローカルのgitで

git svn clone (ローカルのSVNリポジトリ)

すると。