Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@isanasan

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

テーブル名もカラム名も日本語のデータベースに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とついでに日本語メソッドの実行の確認ができました。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
isanasan

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?