$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
register_activation_hook関数の使い方でみるPHPの文法おさらい
Search
echizenyayota
July 28, 2017
Programming
0
1.4k
register_activation_hook関数の使い方でみるPHPの文法おさらい
WordPress関数をよく知るためには、PHPの文法に慣れていないといけませんよーというお話です
echizenyayota
July 28, 2017
Tweet
Share
More Decks by echizenyayota
See All by echizenyayota
日本語話者と英語話者のためのIT技術者交流コミュニティ_事始め_日本語_英語_.pdf
echizenyayota
0
430
外出自粛期間のおすすめ! オンラインサービスで 自由気ままな英語学習
echizenyayota
0
540
Visual Studio CodeでJavaScriptプログラミング
echizenyayota
0
320
他人のソースコードをすばやく読むコツ 項とJavaScriptの演算子
echizenyayota
0
130
ドットインストールの質問回答サービスで身につくプログラミング学習法
echizenyayota
0
140
「Webパフォーマンス改善セミナー」 概要説明
echizenyayota
1
71
JavaScriptの正規表現で リファラースパムを退治した話
echizenyayota
0
140
JavaScriptの新しい文法を学習しよう
echizenyayota
1
340
さくらのVPSでプラグインを使わないWordPressのバックアップ
echizenyayota
0
1.4k
Other Decks in Programming
See All in Programming
React Native New Architecture 移行実践報告
taminif
1
130
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
470
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
130
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
130
Herb to ReActionView: A New Foundation for the View Layer @ San Francisco Ruby Conference 2025
marcoroth
0
240
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
380
JJUG CCC 2025 Fall: Virtual Thread Deep Dive
ternbusty
3
510
【レイトレ合宿11】kagayaki_v4
runningoutrate
0
220
CSC305 Lecture 17
javiergs
PRO
0
270
関数実行の裏側では何が起きているのか?
minop1205
1
440
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
230
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
How STYLIGHT went responsive
nonsquared
100
5.9k
We Have a Design System, Now What?
morganepeng
54
7.9k
Bash Introduction
62gerente
615
210k
The Invisible Side of Design
smashingmag
302
51k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Unsuck your backbone
ammeep
671
58k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Raft: Consensus for Rubyists
vanstee
140
7.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
370
Transcript
register_activation_hook関数の使い方で みるPHPの文法おさらい 2017年7月28日(金) in WordBench大阪
Who are you? 福井 洋(@echizenya_yota) https://twitter.com/echizenya_yota http://e-yota.com/ WordCamp Kyoto 2017
実行委員(スポンサーチーム担当) https://2017.kyoto.wordcamp.org/organizers/ http://e-yota.com/webservice/suponsors-organizer/ 普段はWordPressサイトのサーバー構築のお手伝いと個人レッスン、Web初心者向け にプログラミングの個人レッスンをしている個人事業主です。
WordCamp Kyoto 2017 コントリデイ 本日のネタはwckyoto2017の2日目に行われたコントリビュターデイで、WordPress Codexを編集したときの内容に基づいてお話します。
実際に自分が編集したところ
register_activation_hook関数とは プラグインが有効化されたときに実行される関数を登録する関数。
register_activation_hook関数の具体例 class WPWA_User_Manager { public function __construct() { // 初期化コード
register_activation_hook( __FILE__ , array( $this, 'add_application_user_roles' ) ); } public function add_application_user_roles() { add_role( 'follower', 'Follower', array( 'read' => true ) ); add_role( 'developer', 'Developer', array( 'read' => true ) ); add_role( 'member', 'Member', array( 'read' => true ) ); } } $user_manage = new WPWA_User_Manager(); 詳しくはこちら→ https://goo.gl/Y83PGS プラグインが有効化されたときに、 Follower、Developper、Memberと いうユーザーロールが追加される
register_activation_hook関数の2つの使い方 • 関数を使う場合(クラスメソッドを使わない場合) • 関数を使わない場合(クラスメソッドを使う場合) →今回は関数を使わない場合(クラスメソッドを使う場合)でPHP の文法について説明
オブジェクトとは? class Hoge { public function __construct() { wp_example(__FILE__, array(
$this, 'fuga' ) ); } public function fuga() { } } →データとデータの処理方法の定義書 (説明の便宜上、架空のWordPress関数、wp_exampleを使用します)
クラス定義 class Hoge { } →定義するクラス名を宣言
コンストラクタ(初期化処理) class Hoge { public function __construct() { wp_example(__FILE__, array(
$this, 'fuga' ) ); } } →Hogeクラスが実行されると必ず__construct()というメソッドが呼び出される
__FILE__(マジック定数) class hoge { public function __construct() { // 初期化コード
wp_example(__FILE__, array( $this, 'fuga' ) ); } } →ファイルのフルパスとファイル名。 自分の環境だと/var/www/wordpress/wp-content/plugins/wpwa-user-manager/class-wpwa-user-manager.php と言う意味。
配列 class Hoge { public function __construct() { // 初期化コード
wp_example(__FILE__, array( $this, 'fuga' ) ); } } →変数を複数入れられる「箱」のようなもの
擬似変数 class Hoge { public function __construct() { // 初期化コード
wp_example(__FILE__, array( $this, 'fuga' ) ); } } →クラスの中のメソッドやプロパティ(クラス変数)みたいにアクセスする時に使うキー ワード
メソッド class Hoge { public function __construct() { // 初期化コード
wp_example( __FILE__ , array( $this, ‘fuga’) ); } public function fuga() { echo “My Name is Wapuu!”; } } →クラス内で使う関数
インスタンス化とは? class Hoge { public function __construct() { wp_example(__FILE__, array(
$this, 'fuga' ) ); } public function fuga() { echo “My Name is Wapuu!”; } } $hogefuga = new Hoge(); →クラスに定義されているデータを実際に持たせたデータ
newキーワード class Hoge { public function __construct() { wp_example(__FILE__, array(
$this, 'fuga' ) ); } public function fuga() { echo “My Name is Wapuu!”; } } $hogefuga = new Hoge(); →クラスに定義されている内容を実際に持たせたデータを呼び出す時に使うキーワード
オブジェクト変数 class Hoge { public function __construct() { wp_example(__FILE__, array(
$this, 'fuga' ) ); } public function fuga() { echo “My Name is Wapuu”; } } $hogefuga = new Hoge(); →クラスに定義されている内容を実際に持つ変数
オブジェクトとインスタンスの使用例 class Hoge { public function __construct() { wp_example(__FILE__, array(
$this, 'fuga' ) ); } public function fuga() { echo “My Name is Wapuu!”; } } $hogefuga = new Hoge(); $hogefuga->fuga(); →出力結果: My Name is Wapuu!
意味の分からない変数はデバッグしよう! class Hoge { public function __construct() { var_dump(__FILE__) exit;
wp_example(__FILE__, array( $this, 'fuga' ) ); } public function fuga() { echo “My Name is Wapuu!”; } } $hogefuga = new Hoge(); $hogefuga->fuga(); →出力結果: /var/www/wordpress/wp-content/plugins/wpwa-user-manager/class-wpwa-user-manager.php
公式ドキュメントを読もう! http://php.net/
本で調べよう! https://bookmeter.com/books/11600128
それでも分からなければdotinstallを利用しよう http://dotinstall.com/lessons/basic_php_v2
ご清聴ありがとうございました!