1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PHPは日本語のクラス名でもautoloadできる

Posted at

テーブル名もカラム名も日本語のデータベースにORMを使おうとすると、エンティティクラス名が日本語になってしまったので、そもそも日本語のクラスってautoloadできるのか?というのを実験してみました。

環境

ubuntu 20.04
php 8.0

成果物

リポジトリはこちら

ディレクトリ構造

.
├── composer.json
├── composer.lock
├── src
│   ├── Foo
│   │   └── Baa
│   │       └── 日本人.php
│   ├── bootstrap.php
│   └── test.php
└── vendor

日本語のクラスを用意

日本人.php
<?php

namespace Isanasan\Test;

class 日本人
{
    public function あいさつ()
    {
        echo 'こんにちは' . PHP_EOL;
    }
}

autoloadの設定

composer.json
{
    "require": {
        "php": "^8.0"
    },
    "autoload":{
        "psr-4": {
            "Isanasan\\Test\\":"src/Foo/Baa"
        }
    }
}

呼び出し側

test.json
<?php

namespace Isanasan\Test;

require_once __DIR__ . "/bootstrap.php";

$japanese = new 日本人();

$japanese->あいさつ();

実行結果

% php ./src/test.php
こんにちは

まとめ

無事、日本語のクラスのautoloadとついでに日本語メソッドの実行の確認ができました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?