カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

PHP5.4以上でのクラスの継承

既に定義されたクラスを継承して子クラス(サブクラス)を作成し、メソッドを上書き(オーバーライド)する際は注意が必要です。

オーバーライドするメソッドは引数の数、デフォルト値の設定が異なるとエラーになります。

Strict Standards: Declaration of ... should be compatible with ...

というのも、PHP5.3まではOKだったんです。
5.3系から5.6系にアップグレードする際はご注意ください。

1,723 views

macOS High SierraでCocoaPodsのpod updateがエラー

macOSがHigh Sierraになり、Xcodeもアップデートされ、
色々と警告が出るようになっていたので、これを解消しようと思ったら
色々つまづいたので書いておきます。

まずはライブラリをアップデートする必要があるようなのでpod updateコマンドを実行。
すると以下のようなエラーが発生。

-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory

どうやらmacOSがHigh Sierraだとエラーが発生する模様です。

Rubyをアップデートするために以下のコマンドを実行。

sudo gem update --system

エラーが発生。

ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem

その場合は以下のようなコマンドにするらしいですが、
実行してみると既にインストール済と言われます。

sudo gem update --system -n /usr/local/bin

次にCocoaPodsをアップデート。

sudo gem install cocoapods

これも途中でエラーが発生。

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/bin directory.

コマンドにオプションを付けてやり直し。

sudo gem install -n /usr/local/bin cocoapods

正常にインストールが完了しました。
続きを読む…»

4,396 views

さくらインターネットのphp.ini (独自ドメインの場合)

さくらインターネットではPHPの設定を.htaccessではやらないでください、とのことらしいです。
ということで、サーバーのコントロールパネルからphp.iniの編集にて設定を変更します。

ここで少しハマったのが、複数の独自ドメインで運用していると
そこではコントロールパネルで設定した内容は反映されないようなのです。

どうすれば良いかと言いますと、それぞれのドキュメントルートにphp.iniをアップロードします。
ここで設定すればそのドメイン以下に内容が反映されます。

2,551 views

3ヶ月前の末日を取得する

日付関数を使って3ヶ月前の末日を取得するTipsです。

$year  = date("Y"); //2018
$month = date("n"); //3
$day   = 0;         //末日を取得するので「0」とする

$time = mktime(0, 0, 0, $month - 2, $day, $year);

echo date("Y-m-d", $time);

出力結果は「2017-12-31」となります。

Visual Basicでやってみる

VBでも同様のことができます。

DateSerial(Year(Date), Month(Date) - 2, 0)
1,457 views

Swift 文字列を分割する

Swiftで文字列を分割して配列に格納する方法をご紹介します。
Foundationのインポートが必要です。

let myString: String = "2018/02/15"
var myArray: [String]
myArray = myString.components(separatedBy: "/")
2,499 views