Skip to content

Instantly share code, notes, and snippets.

@nazo
nazo / gist:08afe5edc3963210f1cb
Created May 18, 2015 04:11
[php]PHP5.3系のGCとメモリ確保を抑える方法

PHP5.3以降のPHP5系では、参照カウント法によるGCが実装されています。

基本

PHPの変数は「zval」というコンテナ(構造体)に格納されます。 PHPは全てzvalで統一されているため、無駄が多いということで、次世代PHPであるPHP7ではzval自体の見直しが図られています。

変数はどのタイミングで解放されるか

基本的には変数がスコープから外れた時点で解放されます。また、スコープ内でもunset()することにより該当の変数は解放されます。

@nazo
nazo / gist:f5859ee3334c6da09041
Created May 18, 2015 04:05
[php][laravel5]例外の内容をログに出力

ほっといたら例外はログに出るんだけど、例えばログには吐きたいけどcatchしてプログラムを終了させたくない時は、

try {
} catch(FooException $e) {
   \App::make('Illuminate\Contracts\Debug\ExceptionHandler')->report($e);
   // ...
}
@nazo
nazo / gist:116f7ff2401d231c2619
Created May 18, 2015 04:04
[php][laravel5]Laravelのサービスプロバイダ

サービスプロバイダの生成

$ php artisan make:provider NazoServiceProvider

という感じで生成。app/Providers/以下に生成される。

サービスプロバイダの登録

@nazo
nazo / gist:7a6109f07a624082d01e
Last active August 29, 2015 14:21
[php][laravel5]Laravel5付属の便利関数

Support/helplers.phpにある

studly_case

trait_uses_recursive

value

値を返すが、Closureだった場合はそれを実行した結果を返す。

@nazo
nazo / gist:019ba10e4ac75b33c83e
Created May 18, 2015 04:03
[php][laravel5].envで「null」という文字列を指定するとnull値になる
まあそんなことしないと思いますが…
ちなみにこれはlaravelの機能ではなく、phpdotenvというライブラリです。他言語のもあります。
@nazo
nazo / gist:de02ea6c4abf470b8b4c
Last active August 29, 2015 14:21
[php][laravel5]DB周り

基本的な使い方

    $results = \DB::select('select * from articles where id = ?', [2]);

Query Builderの説明を読んだほうが早い。通常はEloquent使うと思うので使わないと思う。特殊なSQLを発行したい時に使おう。

Eloquent ORM

use Illuminate\Database\Eloquent\Model;
class User extends Model
@nazo
nazo / gist:d206a8170a075038442c
Created May 18, 2015 04:02
[php][laravel5]全てのエラーで任意のエラーページを出力する
@nazo
nazo / gist:96ce650f665fac1a9e64
Created May 18, 2015 04:01
[php]composer autoloadを活用しよう

composer autoload対応の素晴らしさを前回の記事で書いたけど、最小限の例を用意していないので、ちょっと書いてみる。

概要

composer autoloadを使うと、requireを書く必要が(ほぼ)無くなるよ。

使い方

composerがインストールされている前提で、まず、プロジェクトルートにcomposer.jsonファイルを作成する。

@nazo
nazo / gist:2840462
Created May 31, 2012 02:18
XVimが不思議な挙動をするコード
//
// RootViewController.m
// Locations
//
// Created by nazo on 12/05/31.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import "RootViewController.h"
@nazo
nazo / gist:1030910
Created June 17, 2011 05:21
Symfony2 Beta5 twig.extension setting
services:
twig.extension.text:
class: Twig_Extensions_Extension_Text
tags:
- { name: twig.extension }