さくらVPSにCodeigniterを導入してみる
Codeigniterとは
MVC構造を取るPHP製のWebアプリケーションフレームワークである。
メリット
- コードが見やすい
- 動作が早い
- 3.0以降からcomposerが導入されている
デメリット
- データベースアクセス機能が基本構造のみ
- 大型開発には向いていない
環境
- ドキュメントルート: /var/www/example/public_html/
- URL : http://example.com
CodeIgniterをインストール
以下URLよりCodeigniterのZipファイルをダウンロードし展開する
ドキュメントルートのpublic_htmlディレクトリ配下に展開した以下ファイル、ディレクトリをアップロードする
- public_html
設定ファイル編集
application/config/config.php
$config['base_url'] = '/';
$config['url_suffix'] = '.html';
上記のように設定し http://example.com にアクセスしてみると以下のように簡単にcodeigniterが作られたのがわかると思います。
次回はMVCの基礎を触っていきます。
jsによる正規表現
jsによる正規表現
- 主にエラーチェック
- 文字の抽出に使われる
正規表現基本
<script> var s = '@kosachan, @sugatech, @taketech'; var rs = s.match(/kosachan/); if (rs) { console.log(rs); } </script>
これでconsoleを見ると 以下のように取得できていることがわかりますね
メタ文字
- [abc] → abcのどれかの文字
- [a-z] → a~zまでに該当する文字
- [^abc] → abcのどれでもない何かの文字
. 任意の一文字
- (/kosa...n/) これで.には3文字何かしらの文字が入ります
^ 行頭
- (/^@kosachan/) @kosachanだけ取得することができます
## $ 行末 (/@kosachan$/) 行末の@kosachanを取得することができます
{} 直前の文字の繰り返し回数
- 0{2} → 00の文字列
- 0{2,} → 00, 000, 000...の文字列を取得
- 0{2,4} → 00, 000, 0000の文字列取得
繰り返しの応用
- a-z]{5} → a-zの文字の5文字繰り返し
- {a-z}{3.6} → a-zの文字が3文字から6文字の繰り返し
?, *, +, |
- a? → 空文字, a
- a* → 空文字, a, aaaa, aaaa...
- a+ → a, aaa, aaaa...
- (abc|def) → abcあるいはdefの文字列
\n, \t, \d, \w, \s,
- \n -> 改行
- \t ->タブ
- \d -> 数字[0-9]
- \w -> 英数字[A-Za-z0-9_]
- \s ->スペース、タブ
* +のあとの?
(/+?@hogehoge.com/)
→ これで最初のマッチする文字列だけ取得することが可能
TwitterのユーザIDを取得
/(@[A-Za-z0-9_]{1,15})/
→ これで@hogehogeなどのtwitterIDを取得可能「
タイトルタグ抽出
var s = '<title>こさちゃん技術アップ</title>' var rs = s.match(/<title>([^<]+)<\/title>/); console.log(RegExp.$1);
このように出ますね
日付を日本語表記にする
var s = '2016-07-31'; var rs = s.match(/(\d{4})[-\/](\d{2})[-\/](\d{2})/); console.log(RegExp.$1 + '年' +RegExp.$2+'月' + RegExp.$3+ '日');
このように出ますね
正規表現を用いて色々応用させることができそうです。
Laravelのパッケージ導入の際の設定ファイル外だし
laravelでパッケージを導入し、設定ファイルを外だしするときにつまずいたところ
laravelでのパッケージ導入
1, composer によるインストール
2, app.phpにあるサービスプロバイダーなどにコードを追加
3, 設定ファイル出力
php artisan vendor:publish
するとこんなエラーに遭遇 Nothing to publish for tag [].
このようなエラーが出た場合configの内容をcacheする必要がある
解決方法
php artisan config:clear
これをすることでconfigの内容がクリアされる
もう一度実行してみる
php artisan vendor:publish
Copied Directory [/vendor///views] To [/resources/views/vendor/~~]
と設定ファイルの外だしに成功!
HTML5での独自データ属性(jQuery)
独自データ属性とは
HTML要素の属性として定義されていないwebページやwebアプリケーション固有の属性のこと。webページやwebアプリケーションで固有の独自データを取得する際に仕様する。
独自データ属性の定義
属性名の先頭に「data- 」をつける
<ul> <li id="number" data-id="1">No.1</li> </ul>
独自データ属性の値を取得
<script> var number = ("#number"); console.log(number.data('id')); </script>
上記のdata-id以外にもdata-dateなど複数指定しても取得することができる。 これによってjs上でphpコードを埋め込んだり無駄なjsやコードを削減することができます。
laravelでserverのport番号を変えよう
laravelでのport番号変更
下記でwebサーバーを起動させる
php artisan serve
ローカル環境での開発にて現在の設定が8000のportである
localhost:8000
例えば8080のportに変更させたい そのときに使う方法
php artisan serve --port=8080
もし80のportでしたいならsudoのコマンドが必要
sudo php artisan serve --port=80
hostとportを指定したい場合
php artisan --host=127.0.0.1 --port=9999
上記のコマンドを良く使う場合shellに記述すると楽になる。
#!/usr/bin/env bash php artisan --host=127.0.0.1 --port=9999 &
キャメルケースとスネークケースについて
キャメルケース
キャメルケース(CamelCase)とは、複合語の語頭を大文字にする記法で、一般的な利用例としてはマクドナルドのロゴ「McDonald’s」が挙げられる。
キャメルとは「ラクダ」の意味で、語頭の大文字がラクダのコブのように見えることが語源のようである。
プログラミングでよく用いられるキャメルケースには大きく分けて以下の2種類がある
- パスカルケース/アッパーキャメルケース – 複合語の先頭を大文字にする(PascalCase)
- キャメルケース/ローワーキャメルケース – 複合語の先頭を小文字にする(camelCase)
上記のうち、パスカルケースはモダンなオブジェクト指向プログラミング言語のクラス名、あるいは.NET Frameworkのメソッド名やプロパティー名などで用いられている。一方、JavaやObjective-Cにおいてはメソッド名やプロパティー名などはキャメルケースが用いられている。
スネークケース
スネークケース(snake_case)とは、複合語の単語の間をアンダースコア「_」で区切る記法である。多くの場合は変数名や関数名としては小文字で統一、定数やマクロ定義の場合は大文字で統一するのが一般的なようである。
ちなみに、アンダースコアではなく、ハイフン「-」で記述するチェインケースというものもあるが、こちらはハイフンが減算を意味するマイナスと混同するため、ほとんどプログラミング言語では使えない。
GitHub Flavored Markdownで使える絵文字一覧(おまけ)
Laravelのバリデーションルール
様々なvalidationルール
よく使うもの
- required
- 入力必須
- integer
- 整数かどうか
- numeric
- 数値かどうか
- string
- 文字列であるかどうか
- array
- 配列かどうか
- boolean
- 論理値かどうか
- alpha
- 中身が全部英字かどうか
- alpha_dash
- 英字または-または_であるかどうか
- alpha_num
- 英数字であるかどうか
- date
- 日付かどうか(strtotime)
- image
そこそこ使いそう
あまり使わなさそう
- after
- 対象の日付以降かどうか。
- before
- 対象の日付以前かどうか。