さくらVPSにCodeigniterを導入してみる

  • さくらVPSは契約しているけどあまり使っていなかったこと
  • 他のフレームワークを勉強してみたいと感じたこと

Codeigniterとは

MVC構造を取るPHP製のWebアプリケーションフレームワークである。

  • メリット

    • コードが見やすい
    • 動作が早い
    • 3.0以降からcomposerが導入されている
  • デメリット

    • データベースアクセス機能が基本構造のみ
    • 大型開発には向いていない

環境

CodeIgniterをインストール

以下URLよりCodeigniterのZipファイルをダウンロードし展開する

https://codeigniter.com/

ドキュメントルートのpublic_htmlディレクトリ配下に展開した以下ファイル、ディレクトリをアップロードする

  • public_html
    • application
    • composer.json
    • contributing.md
    • index.php - license.txt
    • readme.rst
    • system
    • user_guide

設定ファイル編集

application/config/config.php

$config['base_url']  = '/';
$config['url_suffix'] = '.html';

上記のように設定し http://example.com にアクセスしてみると以下のように簡単にcodeigniterが作られたのがわかると思います。

f:id:suga-tech3:20160807024803p:plain

次回はMVCの基礎を触っていきます。

jsによる正規表現

jsによる正規表現

  • 主にエラーチェック
  • 文字の抽出に使われる

正規表現基本

<script>
var s = '@kosachan, @sugatech, @taketech';
var rs = s.match(/kosachan/);

if (rs) {
  console.log(rs);
}
</script>

これでconsoleを見ると 以下のように取得できていることがわかりますね

f:id:suga-tech3:20160731181152p:plain

メタ文字

  • [abc] → abcのどれかの文字
  • [a-z] → a~zまでに該当する文字
  • [^abc] → abcのどれでもない何かの文字

. 任意の一文字

  • (/kosa...n/) これで.には3文字何かしらの文字が入ります

^ 行頭

  • (/^@kosachan/) @kosachanだけ取得することができます

## $ 行末  (/@kosachan$/) 行末の@kosachanを取得することができます

{} 直前の文字の繰り返し回数

  1. 0{2} → 00の文字列
  2. 0{2,} → 00, 000, 000...の文字列を取得
  3. 0{2,4} → 00, 000, 0000の文字列取得

繰り返しの応用

  1. a-z]{5} → a-zの文字の5文字繰り返し
  2. {a-z}{3.6} → a-zの文字が3文字から6文字の繰り返し

?, *, +, |

  1. a? → 空文字, a
  2. a* → 空文字, a, aaaa, aaaa...
  3. a+ → a, aaa, aaaa...
  4. (abc|def) → abcあるいはdefの文字列

\n, \t, \d, \w, \s,

  1. \n -> 改行
  2. \t ->タブ
  3. \d -> 数字[0-9]
  4. \w -> 英数字[A-Za-z0-9_]
  5. \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);

このように出ますね

f:id:suga-tech3:20160731181853p:plain

日付を日本語表記にする

var s = '2016-07-31';
var rs = s.match(/(\d{4})[-\/](\d{2})[-\/](\d{2})/);

console.log(RegExp.$1 + '年' +RegExp.$2+'月' + RegExp.$3+ '日');

このように出ますね f:id:suga-tech3:20160731181906p:plain


正規表現を用いて色々応用させることができそうです。

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/~~] と設定ファイルの外だしに成功!

参考資料: https://github.com/Torann/laravel-geoip/issues/37

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やコードを削減することができます。

qiita.com

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のメソッド名やプロパティー名などで用いられている。一方、JavaObjective-Cにおいてはメソッド名やプロパティー名などはキャメルケースが用いられている。

スネークケース

スネークケース(snake_case)とは、複合語の単語の間をアンダースコア「_」で区切る記法である。多くの場合は変数名や関数名としては小文字で統一、定数やマクロ定義の場合は大文字で統一するのが一般的なようである。

ちなみに、アンダースコアではなく、ハイフン「-」で記述するチェインケースというものもあるが、こちらはハイフンが減算を意味するマイナスと混同するため、ほとんどプログラミング言語では使えない。


GitHub Flavored Markdownで使える絵文字一覧(おまけ)

qiita.com

Laravelのバリデーションルール

様々なvalidationルール

よく使うもの

  • required
    • 入力必須
  • integer
    • 整数かどうか
  • numeric
    • 数値かどうか
  • string
    • 文字列であるかどうか
  • array
    • 配列かどうか
  • boolean
    • 論理値かどうか
  • alpha
    • 中身が全部英字かどうか
  • alpha_dash
    • 英字または-または_であるかどうか
  • alpha_num
    • 英数字であるかどうか
  • date
    • 日付かどうか(strtotime)
  • image
    • ファイルが画像かどうか(jpg,png,gif,svg)

そこそこ使いそう

  • json
    • json文字列であるかどうか
  • in
    • 指定リストの中の値に含まれているか *size
    • 指定された値であるかどうか

あまり使わなさそう

  • after
    • 対象の日付以降かどうか。
  • before
    • 対象の日付以前かどうか。

laravelのバリデーション内容:Qiita