WEB

【PHP】クラス定数の文字列連結

phpのクラス定数で文字列連結ができるのは、PHPのバージョンが5.6.0以降になります。

phpのクラス定数の基本的な使い方

<?php
class MyClass
{
    const CONSTANT = 'constant value';

    function showConstant() {
        echo  self::CONSTANT . "\n";
    }
}

echo MyClass::CONSTANT . "\n";

$class = new MyClass();
$class->showConstant();

php5.3.0以降で使用可能なクラス定数

変数を用いてクラスを参照することが可能になりました。
ヒアドキュメントや Nowdoc を用いた定数の初期化も使用できるようになりました。

<?php
class MyClass
{
    const CONSTANT = 'constant value';

    function showConstant() {
        echo  self::CONSTANT . "\n";
    }
}

// 変数を用いてクラスを参照
$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // PHP 5.3.0 以降で対応

// 変数を用いてクラスを参照
$class = new MyClass();
echo $class::CONSTANT."\n"; // PHP 5.3.0 以降で対応


class foo {
    // PHP 5.3.0 以降で対応(Nowdoc)
    const BAR = <<<'EOT'
bar
EOT;
    // PHP 5.3.0 以降で対応(ヒアドキュメント)
    const BAZ = <<<EOT
baz
EOT;
}

php5.6.0以降で使用可能なクラス定数

数値リテラルや文字列リテラルそして定数を含むスカラー式を指定できるようになりました。

const ONE = 1;

class foo {
    // PHP 5.6.0 以降
    const TWO = ONE * 2;
    const THREE = ONE + self::TWO;
    const SENTENCE = 'The value of THREE is '.self::THREE;
}

GIMPで枠線(囲み線)を描く

GIMPで枠線(囲み線)の書き方というか、描き方をご紹介します。

矩形(くけい)選択をクリック

ツールボックス左上にある矩形選択を選びます。

スクリーンショット 2016-06-16 23.55.39.png

枠線で囲みたい部分を矩形選択する

ドラックアンドドロップで枠線で囲みたい部分を選択します。

スクリーンショット 2016-06-16 23.56.19.png

「選択範囲の境界線を描画」をクリック

「編集」 > 「選択範囲の境界線を描画」をクリック

スクリーンショット 2016-06-16 23.56.37.png

境界線を描く

境界線描画のダイアログが表示されるので、線の幅やスタイルを入力し、「描画」ボタンをクリック

スクリーンショット 2016-06-16 23.57.05.png

枠線が描画されます。

スクリーンショット 2016-06-16 23.57.20.png

画像を上書き保存

「ファイル」 > 「[画像ファイル名]に上書きエクスポート」をクリックで、上書き保存できます。
「保存」や「名前を付けて保存」だとpngやgif、jpgで保存できないので、元の拡張子で保存したい場合は上書き保存します。

スクリーンショット 2016-06-17 0.11.18.png

以上で完了です。

枠線の色を変えたい場合は?

ツールボックスの「現在の描画色」をクリックし、色を変更した後に枠線の描画を行います。

スクリーンショット 2016-06-17 0.21.13.png

お疲れさまでした。

【wordpress】Googleフォトにある画像を表示するプラグイン

wordpressで画像を表示する際に、Googleフォトにアップロードしてある画像を表示するプラグイン「Photo Express for Google」をご紹介します。

以前はプラグインを使わず、右クリックで「画像アドレスをコピー」してimgタグで表示してました。
が・・・少し経つと画像が表示されなくなるという事態に。。。

なので、プラグインを使用してGoogleフォトにアップロードしている画像を表示することにしました。

使用するプラグインは「Photo Express for Google」というプラグインです。
簡単に画像を挿入することができ、画像のサイズ指定なども出来てすごい便利です!

こんな感じで、投稿画面でGoogleフォトの画像がモーダル上に表示されて、クリックで簡単に画像を挿入できます。

Photo Express for Googleモーダル

Photo Express for Googleをインストール

プラグイン新規追加で「Photo Express for Google」を検索し、インストール

Photo Express for Googleをインストール

「プラグインを有効化」リンクをクリック

プラグインを有効化

続きを読む

【wordpress】headタグ内に表示されているwordpressのバージョンを非表示にする

wordpressのheadタグ内に表示されている、wordpressのバージョン情報を非表示にする方法

wordpressのバージョン情報は以下のような表示です。

<meta name="generator" content="WordPress 3.x.x" />

このwordpressのバージョン情報を非表示にするには、以下のソースをfunction.phpに記述すればOKです。

remove_action('wp_head', 'wp_generator');

function.phpを編集するには、「外観」 > 「テーマの編集」から修正することが出来ます。

Phalconチュートリアル実装2(PHP Framework)

Phalconのマニュアルにあるチュートリアルを実装し、INVOという名のWebサイトが表示されるところまで行います。
INVOというのは、Phalcon側で作成したサンプルWebサイトです。
Phalconのインストールは以下の内容で済んでいる前提です。

Phalconインストール(CentOS7.2 + PHP5.4)
または
Phalconインストール(CentOS7.2 + PHP7.0)

Phalconのサンプルソース取得

以下のマニュアルを参考にチュートリアルのソースを取得し、「Hello!」を表示します。
https://docs.phalconphp.com/ja/latest/reference/tutorial-invo.html

今回は、「/var/www/html/」配下にサンプルソースを配置します。
git cloneすることで、html下にinvoフォルダが作成されます。

$ cd /var/www/html/
$ git clone https://github.com/phalcon/invo.git

cloneしてソースを取得したら、gitは不要かと思いますので、削除してしまってよいです。

$ rm -rf /var/www/html/invo/.git/

Nginxの設定

以下のマニュアルを参考にnginx.confまたは、conf.d配下のconfファイルにnginxの設定を行います。
https://docs.phalconphp.com/ja/latest/reference/nginx.html

今回は、マニュアルの「$_SERVER['REQUEST_URI'] をURIsとする場合」の設定を使用します。
プロジェクトフォルダは「/var/www/html/invo/」です。
rootに設定するディレクトリは「/var/www/html/invo/public」ですので、ご注意を!

server {
    listen      80;
    server_name localhost;
    root        /var/www/html/invo/public;
    index       index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        try_files     $uri =404;

        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index /index.php;

        include fastcgi_params;
        fastcgi_split_path_info       ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定が完了したら、Nginxを再起動します。

CentOS7の場合

$ /bin/systemctl restart nginx

以上で完了です。
ブラウザでアクセスすると、INVOというWebサイトが表示されると思います。

もし、表示されない場合は以下の対応で直るかもしれません。

画面が表示されない場合の対応

Voltのエラー

もし、以下のようなエラーが画面に表示されたら、cache/volt/への書き込みが行えないためにエラーになっています。

Volt directory can't be written
#0 [internal function]: Phalcon\Mvc\View\Engine\Volt\Compiler->compileFile('/web/dev/ttonos...', '/web/dev/ttonos...', false)
#1 [internal function]: Phalcon\Mvc\View\Engine\Volt\Compiler->compile('/web/dev/ttonos...')
#2 [internal function]: Phalcon\Mvc\View\Engine\Volt->render('/web/dev/ttonos...', NULL, true)
#3 [internal function]: Phalcon\Mvc\View->_engineRender(Array, 'index/index', true, true, NULL)
#4 [internal function]: Phalcon\Mvc\View->render('index', 'index', Array)
#5 /web/dev/ttonosaki/iot/public/index.php(32): Phalcon\Mvc\Application->handle()
#6 {main}

cache/voltフォルダへの書き込み権限を与えてください。
手っ取り早くやるには、フォルダ権限を777にすると解決します。(セキュリティ的に微妙そうですが・・・)

$ chmod 777 /var/www/html/invo/cache/volt

デザイン(css)が適用されない

baseUriの設定が合っていない可能性があります。
以下のように修正すると直るかもしれません。

修正ファイル:/var/www/html/invo/app/config/config.ini

baseUri        = /invo/
↓
baseUri        = /

以上です。
お疲れさまでした。