« 2017年10月 | メイン | 2017年12月 »

2017年11月26日

jquery プラグイン構造忘れる

(function( $ ){

  $.fn.myPlugin = function() {

    // ここでは"this"=$('#element')

    // ここでの$(this)は$($('#element'))と同じ事になります

    this.fadeIn('normal', function(){

      // ここでのthisはDOM要素になります
	//$(this) = $('#element')

    });

  };
})( jQuery );
$('#element').myPlugin();

投稿者 muuming : 16:56

2017年11月24日

smartyテンプレート内でexplode

めったに使わ無さそうだがメモメモ

{assign var="array" value=","|explode:'apple,orange,banana'}

投稿者 muuming : 14:48

2017年11月23日

javascriptでフォームのバリテーション

document.form1.checkValidity → 正誤のみでエラー表示なし
document.form1.reportValidity → 正誤とエラー表示(submitボタン押した後の動作と同じかな?)

投稿者 muuming : 11:51

2017年11月20日

smarty:nodefaultsのバージョン3の場合

{$var nofilter} ですよーわすれる

投稿者 muuming : 11:41

2017年11月19日

smarty 文字列連結

{include file="`$dir``$file`"}

バックスラッシュで展開できるんだってー。あんま使わないからいつも忘れちゃう。

投稿者 muuming : 13:07

2017年11月17日

UTF-8文字列の入力チェック

PHPの場合


function validate_utf8($input) {
return (bool)preg_match('//u', $input);
}


https://qiita.com/mpyw/items/f0628b35a368fa468775

投稿者 muuming : 11:55

2017年11月12日

centos7 network周り

/etc/sysconfig/network-scripts/以下のifcfg- をいじるのはお勧めしないらしい

以前はsetupコマンドでデてたけど、7からは「nmtui」だ

route でgatewayの確認

現状の確認
# nmcli d
デバイス タイプ 状態 接続
ens160 ethernet 接続済み ens160
lo loopback 管理無し --

# nmcli d show ens160
GENERAL.デバイス: ens160
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 00:50:56:95:91:EE
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: ens160
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.1.2/24
IP4.ゲートウェイ: 192.168.1.1
IP6.アドレス[1]: fe80::250:56ff:fe95:91ee/64


nmtui で固定IPが繋がらない時にやったこと。
固定IPを 192.168.206.111 と入力すると、再度設定を開くと 192.168.206.111/32 となるのでこれを
192.168.206.111/24と変更すると上手く行った。 なぜ?これは何?はわからんw

投稿者 muuming : 07:22

2017年11月11日

git apache経由を導入してみる

以前ssh経由のgitを導入したが、パスワード毎回入れないといけないので、apache経由を導入してみる。

subversionもapache経由ならID PASS省略できるしいけるような気がするので。

環境centos7です。


#mod_cgi、 mod_alias、 mod_env、 mod_rewrite が必要らしい
#/usr/lib64/httpd/modules/以下に全部入ってるのでこれはOKっぽい


#git インストール
yum install git
mkdir /home/mygit
cd /home/mygit/


#初期化
git init

#bareリポジトリかどうか調べる
git config --get-all core.bare → false

#ノンベアリポジトリはワーキングディレクトリを持つ
#ベアリポジトリはワーキングディレクトリを持たない。更新情報だけを持っている

#コミットする場所はbareにする
git config --bool core.bare true

#apacheさんが使うので所有者変更
chown -R apache.apache /home/mygit/

#Apache の設定
/etc/httpd/conf.d/git.conf
#-------------------------------
SetEnv GIT_PROJECT_ROOT /home/mygit/
SetEnv GIT_HTTP_EXPORT_ALL

ScriptAlias /mygit/ /usr/libexec/git-core/git-http-backend/


AuthType Basic
AuthName "go away!!"
Require valid-user
AuthUserFile /pathto/.htpasswd

#-------------------------------

とりあえずこれで
http://example.com/mygit のURL使ってcloneできた

ソースの自動展開とかは以前のメモを参照。

うん やってみたけど、やっぱりコミットとプッシュの2段階がどうもめんどくさい。
vmware とかでソース部分をファイル共有してコミットのみで構築テストして、OKだったら遠隔サーバにプッシュかな?

これはvmwareで作業用のブランチをファイル共有して動作確認後、そこににコミットして記録を残しつつ、完成時のバージョンのみマスターにコミットかな。

作業時毎にブランチ切ろうかな。

この方法なら遠隔地サーバはバックアップという意味合いだから、マスターと作業記録ブランチをたまにプッシュするだけなのでIDPASS問題はOKだし、コミットとプッシュ毎回2作業の必要ないからこれがいいかな。

となると自動展開デプロイの必要ないね。
てか そう考えると ssh経由でも何も問題ないのかww

投稿者 muuming : 10:08

2017年11月09日

PHPエラー関連

◆エラーを発生させる
trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] )

◆発生したエラーを独自処理する
set_error_handler('errHandle');
function errHandle($errNo, $errStr, $errFile, $errLine) {
//処理
}


◆従来のエラーはthrow catch出来ないので変換したら幸せらしい
set_error_handler(function($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
});


◆fatal errorを発生させる
throw new Exception("Unknown Error ");

◆fatal errorを独自処理する
function fatalHandle($exception) {
print $exception->getMessage();
}

set_exception_handler('fatalHandle');

投稿者 muuming : 07:30

2017年11月08日

mod_rewrite復習


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


REQUEST_URI は
/file/test.jpg

REQUEST_FILENAME
ファイルシステム内のフルパス
/var/www/htdocs/file/test.jpg


# 1文字マッチしたらリライト実行。空文字列でなければ実行する。
RewriteRule . index.php [L]

# 先頭にマッチしたらリライト実行。常に実行する。
RewriteRule ^ - [L]

#ハイフン(置換しない) →フラグの操作だけを実行したい場合に使う。
RewriteRule ^index\.php$ - [L]

そっか index.phpが存在すれば↑の行は要らないけど、index.phpが存在しない場合は無い場合に無限ループになっちまうからあるのか。なるほど

投稿者 muuming : 12:11

PHPにおけるMVC

http://www.objective-php.net/mvc/about

↑わかりやすいと思う。

オレオレ理解で言えば
smarty使ってHTMLテンプレートを分ける ← VIEW
入ってきた情報をゴニョゴニョ処理する ← Model
受け付けて何の処理なのかを判断する ← Controllers

であるが smarty使って普通に作った場合は、そのアクセスするphpファイル毎に処理が別れるのでそういった意味では Controllers = どのPHPなのかであり、極端な話コントローラー無いとも言える

ちゅうことかな・・・

読み進めてみると、入力データにアクセスできるのはコントローラーだけって感じで進めてるので、となると入力チェックとかもコントローラーの役目なのかなー?

投稿者 muuming : 07:09

2017年11月07日

拡張子なしでもアクセスできちゃう

apacheの設定によっては http://example.com/filename.php でアクセスするファイルが
http://example.com/filename でもアクセスできちゃう。

便利といえば便利?なのか?

いらねー機能だと思うので解除する。

MultiViews だねー

Options -MultiViews -Indexes

ついでに一覧表示も消すね。

投稿者 muuming : 16:27 | コメント (0)

2017年11月04日

apt-get upgrade の「保留」

apt-get update → パッケージリストのアップデートかな?
apt-get upgrade パッケージ自体のアップデート

で 保留1とか出るんだけど、この保留が出る理由は2つ

ディストリビューションによって明示的に保留とされている
それをアップデートすると他のパッケージが削除されてしまう。

なので、その場合は
#テスト
sudo apt-get -s dist-upgrade

#よければ実行
sudo apt-get dist-upgrade

投稿者 muuming : 06:39