【PHP】クラスローダーの自作

クラスローダーとは?

登録さえしておけば、毎回 require_once をしなくても、ファイルを読み込んでくれる機能です。

簡単な作り方

はじめに、ClassLoader.php というファイルを作成し、

@ ClassLoader.php

class ClassLoader {

    private static $dirs;

    public static function loadClass($class) {

        foreach (self::directories() as $directory) {

            $file_name = $directory . "/" . $class . ".php";

            if (is_file($file_name)) {

                require $file_name;

                return true;

            }

        }

    }

    private static function directories() {

        if (empty(self::$dirs)) {

            $base = __DIR__;

            self::$dirs = array(
                // 参照を行うフォルダ
                // フォルダ内に探したいファイルがない場合は
                // エラーになるので 注意
                // * 優先度は上から順です

                $base . "/library",

                $base . "/classes",

            );

        }

        return self::$dirs;

    }

}
@ index.php
require_once __DIR__ . '/ClassLoader.php';
spl_autoload_register(array("ClassLoader", "loadClass"));
ClassLoader.php の最後に
spl_autoload_register(array("ClassLoader", "loadClass"));

を直接記述すれば、 ClassLoader.php を読み込むだけで初期設定が完了する。

 

あとは自由に呼び出しを行えばいいだけだ。

 

例:

require_once "ClassLoader.php";
spl_autoload_register(array("ClassLoader", "loadClass"));

// User Class を呼び出す
// User.php があれば、エラーにならない
$user = new User();

 

【WPEngine】微調整と修正

修正点

  • バージョンアップの最適化
  • 内部コードの最適化
  • UI の修正
  • コマンドラインオプションの追加

バージョンアップの最適化

バージョン情報をファイルに保存し、サーバー側のバージョンより古い場合にのみ更新するようにしました。

内部コードの最適化

複数の同じ機能を持つコードを関数でまとめたり、いらない部分を削るなど最適化を行いました。

UI の修正

UI の大幅な修正を行いました。

  • 音量調整機能の追加
  • タイムラインの追加
  • 直観的で操作しやすいデザイン

コマンドラインオプションの追加

コマンドラインオプションを追加しました。

コマンドラインの使い方は下記リンクよりご確認ください。

※今後変更される可能性があります。

https://wpengine.kema-go.cf/

 

 

【ScreenImage】スクショアプリ

Windows10 用のスクショアプリ

概要

Windows のデフォルト状態だとPrtScreenキーを押してスクリーンショットを撮影したさい、クリップボードに保存されるだけでファイルとして保存されず、
ファイルとして保存するにはペイントなどを開いて自分で保存する必要があり少しめんどくさかった。

それを解消するためScreenImageを開発した。

使い方

使い方は至って簡単で、PrtScreenキーを押すだけ。

すると、 ピクチャフォルダの中に ScreenImage というフォルダができているはずだがその中にスクリーンショットが保存される。

スクリーンショットのファイル名は撮影した瞬間の時間で拡張子はPNGです。

共有機能

タスクバーにある

を右クリックし、アップロードをクリックするとスクリーンショットをアップロードできる。

アップロードする際の質問でクリップボードにリンクをコピーするかどうか聞かれると思いますが、リンクが必要ならコピーは必須です。

細かい設定方法

ダウンロードページに細かく書いてあるのでそっちを見てください(;´∀`)

ダウンロード

ダウンロードは?

https://devras.info/dl/?name=ScreenCapture

一番下のほうにダウンロードボタンがあります。