Monthly Archives: March 2019
1st release published. WordPress.orgDBMakerhttps://wordpress.org/plugins/dbmaker/Simple database plugin. import csv file, delete all records, search and sort in backend, simple search form for frontend. Pass the review, I will be able to register in the official WordPress repository. Check out , commit and tagging with subversion flow for release. Since I already […]
再レビューの結果が届きました。毎日チェックしていただけるのはありがたい。自分だったら面倒くさくなって修正案だけ提示して「こう直せ」って言ってしまいそうなところ、丁寧に理由まで書いてある。(英語なので理解するのが大変だけど) 1.他のライブラリを使うときは、すでに読み込まれていないかチェックしろ 公開されているライブラリをローカールにおいて、require_onceでincludeしてたけど、これじゃダメ。class_existsかfunction_existsを使って定義済みかチェックしろ 2.定数名にprefixをつけろ const DOMAIN = ‘dbmaker’;DBM_DOMAINに変更する。 今回の指摘は軽めなので、サクッと修正して提出。これでいけるかな。修正内容はこちら
初申請の返事がきました。レビューの指摘は3件。修正して6ケ月以内にメールを返信しないと、却下されるらしい。 Forcing PHP Sessions on all pages Calling files remotely Please sanitize, escape, and validate your POST calls 1.Forcing PHP Sessions on all pages initで無条件にsession_startしてるのでサーバーキャッシュが効かない。必要なページだけに絞れ。という指摘です。 データベースのインポートと全削除は時間がかかるので、ajaxで複数回に分けて実行しています。その際、進捗状況などをサーバー側にPHP セッションを使って保存しています。wordpressのコアはPHPセッションを使っていないので、initにフックしてsession_start関数をコールしています。これだと、普通のページにアクセスするときもセッションが有効になってしまいます。 これだと、nginxなどのサーバーが行っているキャッシュ機能が使えないので、アクセスが遅くなるなどの弊害があります。 今からPHPセッションを使わないようにするのは骨が折れるので、最低限に絞る方法として、ajax処理だけに絞ることにしました。具体的には下記のようにwp_doing_ajax()を使います。 function dbm_init_sessions() { if ( wp_doing_ajax() && !session_id() ) { session_start(); } } あ、テストしてみたら、heartbeat でも有効になっちゃうか。うーん、どうするかな。 2. Calling files remotely javascriptのライブラリをCDN使って読み込んでいましたが、外部サーバーに依存するなと怒られました。プラグインのローカルディレクトリに入れることにします。 […]