PHPackages                             itmar/block-class-package - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. itmar/block-class-package

ActiveLibrary

itmar/block-class-package
=========================

Gutenberg block class package

v1.4.2(5mo ago)031MITPHP

Since Mar 31Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/itmaroon/block-class-package)[ Packagist](https://packagist.org/packages/itmar/block-class-package)[ RSS](/packages/itmar-block-class-package/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (21)Used By (0)

block-class-package
===================

[](#block-class-package)

概要
--

[](#概要)

Gutenbergのブロック登録に関連して、必要なPHPの関数をcomposerで読み込むためのファイルをパッケージにまとめました。

インストール
------

[](#インストール)

コマンドプロンプト等から次のように入力してください。

```
composer require itmar/block-class-package

```

収納されているネームスペース・クラス
------------------

[](#収納されているネームスペースクラス)

namespace Itmar\\BlockClassPackage;
namespace Itmar\\ClassPakage;
class ItmarEntryClass
class ItmarAccessClass
class ProgressOverlay

変更履歴
----

[](#変更履歴)

= 1.4.2 =
アクセスカウンターのためのItmarAccessClassを確実性の高いカウント方式に修正

= 1.4.0 =
オートロードの仕組みをWordPressのプラグインの様に複数のオートロードが実行されても問題ないように変更。パッケージ内に翻訳ファイルを持ち、独自のテキストドメインで翻訳できるように仕様を変更

= 1.3.0 =
汎用的に利用できるプログレスバーの表示と進行管理を行う機能を提供するProgressOverlayクラスを追加。これに伴いネームスペースもItmar\\ClassPakageを追加した。

= 1.2.0 =
アクセスカウンターの実装のため、meta情報としてview\_counterというキーを登録する関数をもつItmarAccessClassを追加

= 1.1.1 =
enqueueCommonStylesメソッドに渡すファイルパスをプラグインのルートフォルダより上位のフォルダ内のファイルパスを渡すことができるように修正

= 1.1.0 =
enqueueCommonStylesメソッドを追加

= 1.0.4 =

- 登録するブロックが単数の場合でも対応できるよう機能を追加
- 依存するプラグインがインストールされていない又は有効化されていない場合のエラーメッセージを修正

= 1.0.3 =
wp\_set\_script\_translationsのハンドルを"ブロック名-editor-script"とすることでblock.jsonにデフォルトで設定されている"editorScript": "file:./index.js",を維持しながら、wp\_set\_script\_translationsの機能を維持するようにした。

= 1.0.2 =
WordPress6.5対応のためwp\_register\_scriptではなくwp\_enqueue\_scriptでハンドルを使用するようにしました。

= 1.0.1 =
引数名のスペルミスを修正しました。

= 1.0.0 =
最初のリリース

メソッドの機能と引数
----------

[](#メソッドの機能と引数)

### 名前空間・クラス

[](#名前空間クラス)

\\Itmar\\BlockClassPackage\\ItmarEntryClass

#### block\_init(string $text\_domain, string $file\_path)

[](#block_initstring-text_domain-string-file_path)

##### 説明

[](#説明)

$file\_path内に含まれている複数のブロックを登録します。同時にPHPとJavascriptの翻訳関数をセットします。翻訳のためのpot,po,moの各ファイルはプラグインのルートフォルダ内のlanguagesフォルダに配置されていることが必要です。 また、WordPressの関数で取得する変数をフロントエンドのJavaScriptで使用できるようにローカライズします。 ローカライズされた変数はテキストドメイン名の'-'を'\_'に置換した名称のオブジェクトに次のように収納されます。
home\_url・・・WordPressサイトのホームURL
plugin\_url・・・プラグインルートのURL

##### 引数

[](#引数)

- `$text_domain` string 必須
    プラグインで設定したテキストドメイン名
- `$file_path` string 必須
    プラグインのルートフォルダへの絶対パス。通常は\_\_FILE\_\_を設定する。

##### 戻り値

[](#戻り値)

なし

##### 呼び出し例

[](#呼び出し例)

```
$block_entry = new \Itmar\BlockClassPackage\ItmarEntryClass();

add_action('init', function () use ($block_entry) {
	$block_entry->block_init('text-domain', __FILE__);
});

```

#### activation\_check(array $plugin\_data, array $plugin\_slug)

[](#activation_checkarray-plugin_data-array-plugin_slug)

##### 説明

[](#説明-1)

$plugin\_slugで指定された名称のプラグインがインストール又は有効化されていない場合、そのプラグイン名等（最初に発見された１つだけ）を表示して、処理を中止します。

#### 引数

[](#引数-1)

- `$plugin_data` array 必須
    get\_plugin\_dataで取得したプラグインの情報
- `$plugin_slug` array 必須
    依存する（チェックする）プラグインの名称（string）。配列で指定してください。

##### 戻り値

[](#戻り値-1)

なし

##### 呼び出し例

[](#呼び出し例-1)

```
$block_entry = new \Itmar\BlockClassPackage\ItmarEntryClass();

register_activation_hook(__FILE__, function () use ($block_entry) {
	$plugin_data = get_plugin_data(__FILE__);
	$block_entry->activation_check($plugin_data, ['block-collections']); // ここでメソッドを呼び出し
});

```

#### show\_admin\_dependency\_notices(array $plugin\_data, array $plugin\_slug)

[](#show_admin_dependency_noticesarray-plugin_data-array-plugin_slug)

##### 説明

[](#説明-2)

$plugin\_slugで指定された名称のプラグインがインストール又は有効化されていない場合、そのプラグイン名等（最初に発見された１つだけ）を管理画面に表示させます。

##### 引数

[](#引数-2)

- `$plugin_data` array 必須
    get\_plugin\_dataで取得したプラグインの情報
- `$plugin_slug` array 必須
    依存する（チェックする）プラグインの名称（string）。配列で指定してください。

##### 戻り値

[](#戻り値-2)

なし

##### 呼び出し例

[](#呼び出し例-2)

```
$block_entry = new \Itmar\BlockClassPackage\ItmarEntryClass();

add_action('admin_notices', function () use ($block_entry) {
	$plugin_data = get_plugin_data(__FILE__);
	$block_entry->show_admin_dependency_notices($plugin_data, ['block-collections']);
});

```

#### enqueueCommonStyles(string $filePath, boolean $isEditor, string $packageName)

[](#enqueuecommonstylesstring-filepath-boolean-iseditor-string-packagename)

##### 説明

[](#説明-3)

インストールされているnpmパッケージ内のindex.css、style-index.cssをエンキューします。依存元のプラグインで、この関数を実行することで、依存しているプラグインでも共通のCSSを充てることができます。

##### 引数

[](#引数-3)

- `$filePath` string 必須
    プラグインのエントリポイントファイルがあるフォルダへの絶対パス。原則として`--FILE--`を指定する。
- `$isEditor` boolean 必須
    ブロックエディタに適用させるときはtrue、フロントエンドに適用させるときはfalse。 原則としてenqueue\_block\_assetsフックで呼び出すときはtrue、wp\_enqueue\_scriptsフックで呼び出すときはfalse.
- `$packageName` boolean 必須
    index.css、style-index.cssが格納されているnpmパッケージの名前

##### 戻り値

[](#戻り値-3)

なし

##### 呼び出し例

[](#呼び出し例-3)

```
$block_entry = new \Itmar\BlockClassPackage\ItmarEntryClass();

add_action('enqueue_block_assets', function () use ($block_entry) {
	$block_entry->enqueueCommonStyles(__FILE__, true, "itmar-block-packages");
});
add_action('wp_enqueue_scripts', function () use ($block_entry) {
	$block_entry->enqueueCommonStyles(__FILE__, false, "itmar-block-packages");
});

```

### 名前空間・クラス

[](#名前空間クラス-1)

\\Itmar\\BlockClassPackage\\ItmarAccessClass

#### get\_post\_count(int $id = 0)

[](#get_post_countint-id--0)

##### 説明

[](#説明-4)

$idで指定された投稿データに紐づいたview\_counterキーの値を返す。

##### 引数

[](#引数-4)

- `$id` int 任意
    投稿データのID。指定しなければ現在表示している投稿データのIDが選択される

###### 戻り値

[](#戻り値-4)

IDの数値

###### 呼び出し例

[](#呼び出し例-4)

```
$block_access = new \Itmar\BlockClassPackage\ItmarAccessClass();

$count = get_post_count()

```

#### set\_post\_count()

[](#set_post_count)

##### 説明

[](#説明-5)

表示されたシングルページがもつ$idに紐づいたview\_counterキーの値を更新する（カウントアップ）。

##### 引数

[](#引数-5)

なし

##### 戻り値

[](#戻り値-5)

なし

##### 呼び出し例

[](#呼び出し例-5)

```
$block_access = new \Itmar\BlockClassPackage\ItmarAccessClass();

add_action('template_redirect', array($block_access, 'set_post_count'));

```

### 名前空間・クラス

[](#名前空間クラス-2)

\\Itmar\\ClassPakage\\ProgressOverlay

#### 説明

[](#説明-6)

このクラスはフロントエンドのJavaScriptの操作により、時間がかかる処理の進捗状況をプログレスバーに表示させます。進捗の状況はサーバーサイドの情報ではなく、フロントエンドで得た情報をサーバーサイドに送り、プログレスバーを再レンダリングします。 ただし、キャンセルボタンについてはフロントエンドの操作で、サーバーサイドでWordPressのupdate\_optionを行い、その結果をフロントエンドに返します。 以下に説明する関数は、全てJavaScriptで呼び出してください。

#### ProgressOverlay.show(string message)

[](#progressoverlayshowstring-message)

##### 説明

[](#説明-7)

フロントエンドに進捗状況を表示するダイアログとオーバーレイを表示します。この関数の実行時はプログレスバーは表示されず、待ち表示のGIFアニメが表示されます。フロントエンドで処理の準備中に利用してください。
なお、この処理により、サーバーサイドではupdate\_option('start\_cancel', false);が実行されます。

##### 引数

[](#引数-6)

- `message` string 任意
    ダイアログ内に表示されるメッセージ

###### 戻り値

[](#戻り値-6)

なし

###### 呼び出し例

[](#呼び出し例-6)

```
ProgressOverlay.show();

```

#### ProgressOverlay.showChange()

[](#progressoverlayshowchange)

##### 説明

[](#説明-8)

フロントエンドに表示されたダイアログ内の、待ち表示のGIFアニメを消して、プログレスバーを表示させます。

##### 引数

[](#引数-7)

なし

###### 戻り値

[](#戻り値-7)

なし

###### 呼び出し例

[](#呼び出し例-7)

```
ProgressOverlay.showChange()

```

#### ProgressOverlay.changeProgress(int total, int current, int allcount, int count);

[](#progressoverlaychangeprogressint-total-int-current-int-allcount-int-count)

##### 説明

[](#説明-9)

処理の進捗状況をプログレスバーに表示させます。また、理する全件数とその内の何件目を処理しているかを表示します。

##### 引数

[](#引数-8)

- `total` int 必須
    処理する全件数
- `current` int 必須
    何番目を処理しているかの番号
- `allcount` int 任意
    処理すべき全プロセス数。１件の処理に複数のプロセスがあり、そのプロセス数と処理済み件数をプログレスに表示する場合に使用する。
- `count` int 任意
    処理済みのプロセス数

###### 戻り値

[](#戻り値-8)

なし

###### 呼び出し例

[](#呼び出し例-8)

```
ProgressOverlay.changeProgress(response.data.total, response.data.progress);

```

#### ProgressOverlay.hide()

[](#progressoverlayhide)

##### 説明

[](#説明-10)

フロントエンドに表示されたダイアログとオーバーレイを消去します。

##### 引数

[](#引数-9)

なし

###### 戻り値

[](#戻り値-9)

なし

###### 呼び出し例

[](#呼び出し例-9)

```
ProgressOverlay.hide()

```

#### ProgressOverlay.cancel()

[](#progressoverlaycancel)

##### 説明

[](#説明-11)

サーバーサイドの処理を中止し、フロントエンドに表示されたダイアログとオーバーレイを消去します。
この処理により、サーバーサイドではupdate\_option('start\_cancel', true);が実行されるので、このオプション値を検知することでサーバーサイドの処理を中止させる仕組みを構築することが必要です。

##### 引数

[](#引数-10)

なし

###### 戻り値

[](#戻り値-10)

なし

###### 呼び出し例

[](#呼び出し例-10)

```
ProgressOverlay.cancel()

```

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance80

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~32 days

Recently: every ~56 days

Total

20

Last Release

164d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c3e40f932943bb0f71cf938d02ccaed312c797bc2b09b81fd2c47f1a8d49ef0f?d=identicon)[itmaroon2024](/maintainers/itmaroon2024)

---

Top Contributors

[![itmaroon](https://avatars.githubusercontent.com/u/15277545?v=4)](https://github.com/itmaroon "itmaroon (33 commits)")

### Embed Badge

![Health badge](/badges/itmar-block-class-package/health.svg)

```
[![Health](https://phpackages.com/badges/itmar-block-class-package/health.svg)](https://phpackages.com/packages/itmar-block-class-package)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
