PHP Fatal error: Namespace declaration statement has to be the very first statement in the script
躓いたので残しておきます。
名前空間
PHP のコードならなんでも名前空間に含めることができますが、 実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイトを含む) とインターフェイス、関数、そして定数だけです。
名前空間を宣言するには、キーワード namespace を使用します。名前空間を含むファイルでは、他のコードより前にファイルの先頭で名前空間を宣言しなければなりません。 ただし declare キーワードは例外です。
ふむふむ。
だがしかしnamespaceの前には何も書いてないです。
原因はファイルの保存形式でした。
utf-8で保存していたのですが、BOM付きで保存していました。
phpはこれをnamespaceの前の何かしらとして判断していたようです。
utf-8でphpを扱うときはBOMなし形式で保存しましょう!!