SlideShare uma empresa Scribd logo
1 de 82
Baixar para ler offline
Modern
PHP
Programming
~コピパーからの脱出~

              @ PFI 社内セミナー
                     by id:sotarok
PHP

 もっとも誤解されたプログラミング言語
 最強のウェブ開発言語
  簡単
  速い
  かわいい
本日のお話の構成

PHP
PHPの特徴
PHPのソコソコ入門
独断と偏見によるモダンPHP入門
最近のPHPを取り巻く環境

※本文中の記号
 5.3 のみ   5.3
 お得情報     TIPS
PHP の特徴 5 つ
これだけ抑えれば PHP の8割はOK!
PHPの特徴 (1)

 ウェブ特化型プログラミング言語
 HTMLの中にプログラムロジックをかける
  でも書かないでね (ぉ
PHPの特徴 (2)
                           math
                          JSON
                           XML
                          HTTP
 なんでも入り
 なんでも関数                   MySQL
 なんでもバンドル                   ...

 ./configure –help
  362 行
  --enable-hoge でだいたい入る
  最近のLinux パッケージだと php5 でコア,
  php5-mbstring で mbstring 拡張,など機能単体
  でパッケージになっている
PHPの特徴 (3)

       神がかったドキュメント
        更新速すぎ
          開発中機能とかもドキュメントがあったりする
        サンプルコードつき
        コメントつけられる
        日本語訳速すぎ

TIPS   php.net/fopen
        fopen があればマニュアルにリダイレクト
        なければ検索結果
PHPの特徴 (4)

 PHPer -> 「ぺちぱー」と読む
 PHP -> 「ぺちぺ」と読む
 phpize (コマンド) -> 「ぺちぱいず」と読む
PHPの特徴 (5)

TIPS   PHP を dis るとホッテントリ入りする
        PHPer は必ず釣れる
        なぜか Perl の人も釣れる
        なぜかほかの言語の人が大量に釣れる
         ここぞ!とばかりに「これだから PHP は ...」と
         のたまう (←おまえPHP何もわかってないだろ
PHP ソコソコ入門
とりあえず使ってみる
PHP のインストール
Linux
  % aptitude install php5 php5-mbstring ...
  % yum install php php-mbstring ...
Mac OS
  % port install php5 +mbstring ...
Windows
  茨の道へようこそ
  でも最近MSさんがんばってるみたい!
    http://www.microsoft.com/japan/php
ソースから
  (略
  cf. ) http://trac.nequal.jp/browser/public/dotfiles/sotarok/misc/php53.sh
動かす

% echo "<?php phpinfo(); " > /path/to/www/info.php
とりあえず書いてみる
<html>
<head><title>PHP test</title></head>
<body>
<ul>
<?php
  foreach (range(1, 10) as $v) {
    echo '<li>', $v, '</li>';
  }
?>
</ul>
</body></html>
とりあえず書いてみる
<html>
<head><title>PHP test</title></head>
<body>
<ul>
<?php
  foreach (range(1, 10) as $v) {
    echo '<li>', $v, '</li>';
  }
?>                        <?php から ?>まで
                           が PHP ブロック
</ul>
</body></html>
                        プログラムとして実行.
                        それ以外は出力される
余談

思わずかつての PHP っぽさを出すために
HTMLの中にPHPコードと書いちゃったけ
ど本当言うとこういうのはサンプルでも
出すべきじゃないとは思うんですよね,
「そういうのがPHPなんだ」という第一印
象が根強くついてしまうからです.とい
うわけで今後は全部CLIのサンプルコード
がでてきます.プログラミングPHPについ
ての発表ですので!ウェブアプリに関し
ては興味があればまた聞いてください!
変数
 常にドル
<?php
$_hogefuga = 1;



文
  セミコロンで終わる
<?php
$hoge = 1;
変数
                  ちなみに
 常にドル             閉じタグ ?> は省略可能

<?php
                  というかむしろ
                  「PHPのみが記述されたファイル」
                      のみが記述されたファイル」
                      のみが記述されたファイル
$_hogefuga = 1;
                  では書かないことが推奨 推奨される
                  では書かないことが推奨される

                  (不要な改行が出力されてしまう危
                   不要な改行が出力されてしまう危
                           されてしまう
                  険性があるため
                    があるため)
                  険性があるため)


文
  セミコロンで終わる
<?php
$hoge = 1;
自動定義変数/スーパーグローバル変数
http://jp.php.net/manual/ja/reserved.variables.php


    自動的に定義される
<?php
var_dump($argc);


    あらゆるスコープからアクセス可能
       ウェブサーバ経由でPHPが起動された場合
          http://localhost/hoge.php?hoge=fuga
<?php
var_dump($_GET['hoge']); // fuga
var_dump($_SERVER['REMOTE_ADDR']); //環境変数
PHPの型

 初期化方法,変換関数などにより動的に
 変わる
<?php
$hoge   =   1;                //
$hoge   =   1.0;              //
                                   整数

$hoge   =   "1";              //
                                   浮動小数点

$hoge   =   null;             //   null
                                   文字列

$hoge   =   true;             //   bool
$hoge   =   array(1,2,3,);    //
$hoge   =   new DateTime();   //   Object
                                   配列
PHPの型

 初期化方法,変換関数などにより動的に
 変わる
<?php
$hoge = intval(1);
$hoge = floatval($hoge);
$hoge = strval($hoge);
...
変数を見たい!

 var_dump 関数
   オブジェクトの中身も全部見れる
<?php
$hoge = 1;
var_dump($hoge);
$hoge = "hoge";
var_dump($hoge);

int(1)
string(4) "hoge"
演算子 (特徴的なもののみ)

比較演算子 == / != / === / !==
エラー制御演算子 @
文字列結合 .
型演算子 instanceof
比較演算子

 http://www.php.net/manual/ja/types.comparisons.php
 http://d.hatena.ne.jp/hnw/20080606
 ==/!= での比較は,キャストが発生します
 ===/!== を使いましょう!
                                   全部 true です
<?php
var_dump("1" == 1);
var_dump("10匹のハエ" == 10);
var_dump(null == false);
var_dump(array() == false);
関数

 関数
<?php

function add ($v1, $v2) {
  return $v1 + $v2;
}

echo add(1, 2), PHP_EOL;    // 3
文字列

  PHP
  PHPは基本的になんでも文字列
    ストリームも
    コールバックも
    5.3以前は無名関数定義すらも!
      create_function !!!! 誰も使わねえよ
<?php
$html = file_get_contents(
   "http://www.preferred.jp/"
);
$int_a = array_map('intval',array("1", "2",
   "3",));
配列

 順序付きハッシュテーブル
 添え字配列/連想配列 → いっしょくた
 なんでも配列にする文化
<?php
$array = array(
   1, 2, 3,
   'hoge' => 1,
   4 => 4,
   'array' => array(1, 2, 3, 4,),
);
クラス

 普通にクラスが定義できます
<?php
class Hello
{
  public function greeting($name) {
      echo 'Hello ', $name, PHP_EOL;
  }
}

$h = new Hello();
$h->greeting('sotarok');
クラス定義についてもうちょっと
<?php
class Hello extends Fuga { // extends で継承
  // プロパティ
  protected $name = "sotarok";
  // コンストラクタ
  public __construct() { ... }
  // メソッド
  public function greeting($name) {
    echo 'Hello ', $name, PHP_EOL;
    // プロパティには $this-> でアクセス
    echo 'My name is', $this->name, PHP_EOL;
  }
}
クラス定義についてもうちょっと2

クラス定数
 const
プロパティの修飾
 public/private/protected
 static
メソッドの修飾
 public/private/protected
 static
クラス
 abstract
インターフェース
 interface / implements
スコープ定義演算子
 ::
クラス定義についてもうちょっと3

$this キーワード
 $this->prop
 $this->method();
クラス定数
 Hoge::PIYO;
メソッドのstatic呼びだし
 Hoge::piyo();
static 変数へのアクセス
 Hoge::$static_prop = 5;
定義済みのなにか

PHPには定義済みのなにかがいーーっぱい
 拡張機能を入れると関数・クラス・定数はグロー
 バルに定義されるから.↓の数は環境により違う

定義済み関数: 1725
 % php -r
 'var_dump(count(array_shift(get_defined_functions())
 ));'
定義済み定数: 1696
 % php -r 'var_dump(count(get_defined_constants()));'
定義済みクラス: 145
 % php -r 'var_dump(count(get_declared_classes()));'
独断と偏見によるモダンPHP入門
えーまだそんな書き方してるの?
 古代の人?   といわれないために.




HTMLとロジックの分離
主な内容:

オブジェクト指向
インターフェース
オーバーロード

Autoload
例外・エラーハンドリング

SPL
SimpleXML
DateTime
名前空間
フレームワーク
HTMLとロジックは分離


                            Logic.php
 index.php    Library.php
(エントリーポイント)

                            View.html
ライブラリ

  1
  1ファイル1クラスが基本
            1
  require_once / autoload などで必要なファ
  イルを読み込んで利用
class
|-- Action
|   |-- Info.php
|   `-- UnitTest.php      Ethna_Action_UnitTest
|-- ActionForm.php
|-- Backend.php
|-- CLI
|   `-- ActionClass.php
|-- Controller.php        Ethna_ActionForm
|-- DB
|   |-- ADOdb.php
オブジェクト指向

  メソッドチェイン
  アクセス修飾子
  インターフェース (interface)
  抽象クラス (abstract)
<?php
$time = new DateTime();
echo $time->setTimeZone(new DateTimeZone('Asia/Tokyo'))
    ->add(DateInterval::createFromDateString('1 month'))
    ->format('Y-m-d H:i:s'), PHP_EOL;


2009-12-26 15:41:45
メソッドチェイン
  (をするとモダンだよ,という意味ではなく,
  できるよ,というだけの話)
<?php
class Hoge
{
  ...
  function fuga() { ... return $this; }
  function piyo() { ... return $this; }
  function poyo() { return $some_value; }
}

$hoge = new Hoge();
$value = $hoge->fuga()->piyo()->poyo();
インターフェース
class Members implements Iterator
{
    private $m = array(
        '早乙女アルト' => array(16, '中村悠一',),
        'ランカ・リー' => array(15, '中島愛',),
        'シェリル・ノーム' => array(17, '遠藤綾',),
    );
    public function key() { return key($this->m);}
    public function current() {return current($this->m); }
    public function next() { next($this->m); }
    public function rewind() {reset($this->m);}
    public function valid() {return $this->current() !==
   false; }
}

foreach (new Members as $k => $v) {
    echo $k, ": ", $v[0], "歳, CV:", $v[1], PHP_EOL;
}
インターフェース
class Members implements Iterator
{
    private $m = array(
        '早乙女アルト' => array(16, '中村悠一',),
        'ランカ・リー' => array(15, '中島愛',),
        'シェリル・ノーム' => array(17, '遠藤綾',),
    );
早乙女アルト: 16歳,{ CV:中村悠一
    public function key()   return key($this->m);}
ランカ・リー: 15歳, {CV:中島愛 }
    public function current() {return current($this->m); }
    public function next()   next($this->m);
シェリル・ノーム: 17歳, CV:遠藤綾
    public function rewind() {reset($this->m);}
    public function valid() {return $this->current() !==
   false; }
}

 foreach (new Members as $k => $v) {
     echo $k, ": ", $v[0], "歳, CV:", $v[1], PHP_EOL;
 }
インターフェース

いくつかの定義済みインターフェース
 Iterator
  イテレート可能になる (foreach にわたせる)
 ArrayAccess
  配列的なアクセスが可能になる
SPL インターフェース (後述)
オーバーロード

C++とかのオーバーロードとは違います
のまえに,マジックメソッドについて

__ で始まるメソッド
 なにかの条件のときに自動的に呼ばれるメ
 ソッド
 例: __toString()
  これが定義されていると,オブジェクトをstring
  として呼んだとき(echoしたりとか),このメ
  ソッドが呼ばれる
マジックメソッド

__construct / __destruct
__isset
__unset
__sleep / __awake
__clone
__invoke
__get / __set / __call / __callStatic
__get
class Hoge
{ 存在しないプロパティにアクセスされた
  public function __get($name) {
     echo "really want to get ", $name, " ?",
   ときに呼ばれる
           PHP_EOL;
     return $name;
  }
}

$h = new Hoge();
echo $h->piyo;
 // piyo ってプロパティは存在しない!
 // __get が呼ばれる → なにかしらの値が返ってくる
__set
class Hoge
{ 存在しないプロパティにアクセスされた
  private $prop = array();
  public function __set($name, $value) {
   ときに呼ばれる
     echo "set ", $name, " !", PHP_EOL;
     $this->prop[$name] = $value;
  }
}

$h = new Hoge();
$h->piyo = 'fuga';
 // piyo ってプロパティは存在しない!
 // __set が呼ばれる → fugaがどこかにセットされる
__call
class Hoge
{ 存在しないプロパティにアクセスされた
  public function __call($name, $args) {
   ときに呼ばれる $name, " called!", PHP_EOL;
     echo "method ",
     return call_user_func__array(
           array($this->some_object, $name),
           $args)
     );
  }
}

$h = new Hoge();
$h->piyo('piyo piyo');
 // piyo ってメソッドは存在しない!
 // __call が呼ばれる
__callStatic          5.3


class Hoge
{ 存在しないプロパティにアクセスされた
  public function __callStatic($name, $args) {
   ときに呼ばれる $name, " called!", PHP_EOL;
     echo "method ",
     return call_user_func__array(
           array($this->some_object, $name),
           $args)
     );
  }
}

Hoge::piyo('piyo piyo');
 // Hogeクラスのpiyoってstaticメソッドは存在しな

 // __callStatic が呼ばれる
  い!
オーバーロードの使いどころ

  とにかくライブラリ作る人向けの機能
    でも使う人にも当然恩恵がある
  必要なリソースの必要なときに確保する
class Hoge
{
  public function __call($name, $args) {
     ... $name をパースして呼びだすメソッドを動的に

  }
  変更

}
__call を使ったモデルクラス(例)
public function __call($method, $args)
  {
    if (preg_match("|^findBy|", $method)) {
      $column = strtolower(str_replace('findBy', '',
  $method));
      $q = array_shift($args);

        if (!array_key_exists($column, $this->prop)) {
          return false;
        }

        return $this->find(D::D_FIRST,
          array($column => $q,));
    }
}
__call を使ったモデルクラス(例)
public function __call($method, $args)
  {
    if (preg_match("|^findBy|", $method)) {
      $column = strtolower(str_replace('findBy', '',
  $method));
      $q = array_shift($args);

     if (!array_key_exists($column, $this->prop)) {
       return false;
     }
 findByName() などでメソッドが呼ばれ,「name
 フィールドが DB に存在したら,それに一致するレ
      return $this->find(D::D_FIRST,
        array($column => $q,));
 }
 コードを取り出す」というメソッドを呼び出す

} メソッドを自分で定義する必要がなく,レコード定
 義さえわかれば,あたかもメソッドとして使える
例外
try { ... } catch (Exception $e) { ... }
  できるようになった!
例外を発生させる
  throw new Exception("message");
新しいライブラリ・フレームワークでは
すでに導入されている
しかし ...
  PHP本体が例外をはいてくれないので生煮え
  -> ErrorException で対応
例外使う
<?php
class MyException extends Exception {}

try {
  if (!file_exists('./hoge')) {
      throw new MyException("ふぁいるないよ");
  }
  ... 処理を続行
} catch (MyException $e) { // キャッチ
  // メッセージを表示して終了
  echo $e->getMessage(), PHP_EOL;
  exit(1);
}
PHPのエラーハンドリング
エラーハンドラを自分で定義して登録
 挙動を変えられる
set_error_handler('関数名');
 エラーが発生すると,エラーコードとともに
 この関数が呼ばれる
 フレームワークはだいたいこれでエラー制御
   ログに吐いたりアラーとメール飛ばしたり


おす こともできる→ ErrorException
で,すべてのエラーをexceptionに投げな
ErrorException
  http://jp.php.net/manual/ja/class.errorexcepti
  on.php
  すべてのエラーを例外にする方法
<?php
function exception_error_handler
  ($errno, $errstr, $errfile, $errline) {
    throw new ErrorException
      ($errstr, 0, $errno, $errfile, $errline);
}

set_error_handler("exception_error_handler");
Autoload


  (require/include) するための機構
  クラスがなかったときに自動的に読み込む

  といっても読み込むための処理は自分で記述
  する
   クラス名とファイル名の規則はアプリによって違うため

<?php
// これまでは使うやつ全部 require_once してた
// 使うクラスも使わないクラスもとりあえず
require_once 'class/ActionForm.php';
require_once 'class/Error.php';
require_once 'class/Util.php';
Autoload
<?php

function __autoload ($name) {
  require_once $name . '.php';
}

$m = new PFIMembers();
 // このクラスが定義されていない!
 // __autoload 関数が定義されている → 呼びだし
 // $name には PFIMembers (使おうとしたクラス)
 // がわたされる
 // 結果, PFIMembers.php が読み込まれる
 // PFIMembers クラスが定義される
 // インスタンスが生成される
SPL

 Standard PHP Library
 いろいろなデータ構造のためのクラスや
 インターフェースを提供
 日の目を見ない
  だれかつかってんの?
  ZFとかで地味に使われてたり
 spl_autoload* くらい
SPL (spl_autoload_register)

 autoload をもっと使いやすくする
 autoloadスタック
  複数のautoload関数を登録できる
  1つ目でクラスが読み込めなかったら次の関数
  を...
 メソッドもOK
  MyAutoload::load とか
  array($my_autoload_instance, 'load') とか
SPL (spl_autoload_register)
class Al {
    public static function load($name) {
        $fn = $name . ".php";
        if (file_exists($fn))
           require_once $fn;
    }
    public static function loadClass($name) {
        $fn = $name . ".class.php";
        if (file_exists($fn))
           require_once $fn;
    }
}
spl_autoload_register('Al::load');
spl_autoload_register('Al::loadClass');
SPL (spl_autoload_register)
class Al {
    public static function load($name) {
        $fn = $name . ".php";
        if (file_exists($fn))
           require_once $fn;
    }
    public static function loadClass($name) {
        $fn = $name . ".class.php";
        if (file_exists($fn))
           require_once $fn;
    }
}
spl_autoload_register('Al::load');
spl_autoload_register('Al::loadClass');
SPL

      SplPriorityQueue とか
5.3   SplMinHeap とか
      RecursiveDirectoryIterator とか
      OutOfRangeException とか .....

      まああんま使われてないですけどね

      FYI:こんど勉強会でこのネタやる (12/15)
SimpleXML

 PHPでXML扱うならコレ
 libxml2 のラッパー
 とにかくとりあえず便利
 要素にプロパティとしてアクセス可能
 xpathが使える
 htmlにも使える (DOMとして読み込ませて
 SimpleXMLに変換)
 ただし,xmlを一気に全部パースするため,
 巨大なxmlにはむかない
SimpleXML
<?php
$url =
  'http://twitter.com/statuses/public_timeli
  ne.rss';
$s = simplexml_load_file($url);
foreach ($s->xpath('//item/title') as $t) {
        echo $t, PHP_EOL;
}
PurpleTyger9: just started playing Halo 3. http://raptr.com/marioa9
Kell_Christie: I REMEMBER WHEN WE BOOKED @nickiminaj BACK AT LA RUMBA IN THE
    SUMMER!!!ZzzzZZoooOOOOooo SHE'S A REAL SHOWSTOPPER :-)
GemCrowley: @Princess_Zo You should come. $4 drinks
02PERSONS: @justinbieber so tomorrow at 7? ;D
RuoXO: @hushiana セイクリッド2ってタイトルは聞いたことあるけど、面白いのか。

...
ちょっと調べてみよう(`・ω・´)
DateTime

 どの言語でも悩ましい日付の扱い
 日付を扱うクラス
 5系から導入され,徐々に機能拡張
  タイムゾーン
  日付差分 (DateInterval)   5.3



 対比: date 関数群
  関数いろいろ
  2038年の越えられない壁
  Unix Timestamp を基準
DateTime

 $dt = new DateTime();

 $dt->format('Y-m-d H:i:s');
   デフォルトで今


 $dt->setTimeZone(new
   フォーマット

 DateTimeZone('America/New_York');

 $dt-
   タイムゾーン変更したり(時差計算いらず!)

 >add(DateInterval::createFromDateStering('3
 year 4 month 5 day 20 hour 40 min'));
   3年4カ月5日20時間40分後に移動したり
DateTime
$time = new DateTime();
echo $time->setTimeZone(new DateTimeZone('Asia/Tokyo'))
    ->add(DateInterval::createFromDateString('1 month'))
    ->format('Y-m-d H:i:s'), PHP_EOL;

echo $time->setTimeZone(new
  DateTimeZone('America/New_York'))
    ->format('Y-m-d H:i:s'), PHP_EOL;

echo $time->setTimeZone(new DateTimeZone('Asia/Tokyo'))
    ->add(DateInterval::createFromDateString('9999 year 1
  month 5 days'))
    ->format('Y-m-d H:i:s'), PHP_EOL;

2009-12-26 16:48:06
2009-12-26 02:48:06
12009-01-31 16:49:23
名前空間         5.3




名前空間の定義
 namespace hoge;
名前空間を指定してクラス(など)を呼び出
す
 $h = new hoge¥piyo();



                   ¥
名前空間           5.3




 名前空間の定義
   namespace hoge;
           れたPHPer
          優れた
 名前空間を指定してクラス(など)を呼び出
 す
   $h = new hoge¥piyo();

2008/12
  えええっ,
「えええっ,エンマー
クになったの!?
クになったの!?
PHPオワタ ...」
    オワタ 」
                     ¥     2009/11
                               かわいいよエン.
                           「円かわいいよエン.
                           バクスラもかわいい
                           よ」
名前空間を使う
<?php
// hoge.php
namespace hoge;
class foo {
    function __construct(){
        echo __CLASS__, PHP_EOL;
    }
}

<?php
require 'hoge.php';
$h = new hoge¥foo();

hoge¥foo
複数の名前空間を1ファイルに定義
<?php
// hoge.php
namespace hoge {
class foo {
    function __construct(){
        echo __CLASS__, PHP_EOL;
    }
}
} // namespace hoge

namespace fuga {
...
} // namespace fuga
名前空間は使うべきか?

メジャーなフレームワークの次期次期
バージョンくらいでは,すでに名前空間
付きで開発が始まっている
ゆるやかに移行していくでしょう
まあでもしばらく5.2環境のところも多い
でしょう
おまけ:5.3から使える機能もう一つ
5.3   みんな大好き三項演算が,さらに簡単に
      なりました
function get_value()
{
    // なんかのリソースからデータもってくる
    return array(1,2,3);
}

$hoge = get_value()?:null;
var_dump($hoge);
フレームワーク (独断と偏見による)
CakePHP

  Model が使いやすい.それ以外は嫌いだけど.
  世界でも日本でも大流行り.当然日本語での情報量も多い.

  Cake3 が別フレームワークにfork
Zend Framework
  世界的にシェアNo1?
  書く量の減らないドMフレームワーク

symfony
     というかいわゆるライブラリ郡

  これも利用者多い

Ethna
  大規模向け.かっちりしてる.

  僕メンテナー

rhaco2
  グリーはこれで動いてる!(古いバージョンだけど)

  大本命の超変態フレームワーク
  すごい
その他もろもろ
  PHP 界隈にはクソみたいにフレームワークがあふれている.うんざり.
フレームワーク (独断と偏見による)
CakePHP

  Model が使いやすい.それ以外は嫌いだけど.
  世界でも日本でも大流行り.当然日本語での情報量も多い.
                              ちょろっと
  Cake3 が別フレームワークにfork        つかいたい
Zend Framework
  世界的にシェアNo1?             俺は
  書く量の減らないドMフレームワーク      つかわない
symfony
     というかいわゆるライブラリ郡

  これも利用者多い
                      かっちり
Ethna
  大規模向け.かっちりしてる.
                      つくりたい
  僕メンテナー
                                 どんどん
rhaco2
  グリーはこれで動いてる!(古いバージョンだけど)
                                 使えば良い
  大本命の超変態フレームワーク
  すごい                 つかいたい
その他もろもろ
  PHP 界隈にはクソみたいにフレームワークがあふれている.うんざり.
まだモダンには程遠いんですけど

たぶん時間がないので割愛させていただ
く内容:
 無名関数
  $h = function() { ... };
 Phar
 その他
PHPをとりまく環境
しっといて損はない
PEAR / Openpear / pecl

 PEAR / Openpear
  Openpear は PEAR をもっと使いやすくするために
  nequal が作った (主に @riaf)
    CodeRepos みたいなもん.
  % pear install –a services_twitter-beta
  http//openpear.org/ http://pear.php.net/
 pecl はそれの拡張機能版
  とりあえず APC いれとく
  開発環境なら xdebug も入れる
  % pecl install apc
  http://pecl.php.net/
phpman

            PHP
 コマンドラインで使えるPHPリファレンス
  http://openpear.org/package/phpman
  拙作


 % pear install openpear/phpman
 % pera run-scripts openpear/phpman

 % phpman fopen
phpall

 全バージョンの PHP の挙動を一気にため
 す
   http://d.hatena.ne.jp/hnw/20090110


 % phpall '"0x1 == "1e0"'
php-5.0.0:   bool(true)
php-5.0.1:   bool(true)
php-5.0.2:   bool(true)
php-5.0.3:   bool(false)
php-5.0.4:   bool(false)
...
数々の変態パッチ
moriyoshi 氏による
 http://d.hatena.ne.jp/moriyoshi/20090905/125217
 7259
  echo new DateTime()->format();
 Boost.PHP
  http://d.hatena.ne.jp/moriyoshi/20080323/12062963
  85
 Goっぽい魔改造
  http://d.hatena.ne.jp/moriyoshi/20091114/12582041
  28
  [$ch] <- $i++;
PHP界に降臨する3人の神(多神教)

masaki fujimoto

  mbstring
  元祖神


moriyoshi koizumi
  グリーとEthna の親

  変態神(PHPに限らず)
  なんでもできる人

masahiro takagi
  もうなんなの

  ドキュメント神

  PHP 以外にもいろいろ(表彰されたし)
  超速翻訳
コミュニティ

PHP
PHPユーザ会
  毎月のPHP勉強会 http://events.php.gr.jp/
  年一度 PHP 勉強会
その他各フレームワーク・CMSでコミュ
ニティが乱立
  最近は CakePHP がデカい (勉強会/カンファレ
  ンスなど)
cf. http://twitter.com/sotarok/phper
TIPS

優れたPHPerになるための三大条件

 受け入れる
       名前空間区切りが ¥
       → いつのまにか可愛く見えてきた
 求めない
       「なんで三項演算の結合が ...」
       → きっとだれかがそうしたかったのさ
 楽しむ
       「またひげのおじさんがなにか言ってるよw」
ご静聴ありがとうございました

Mais conteúdo relacionado

Mais procurados

最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜Sotaro Omura
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数Wataru Terada
 
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)Rui Hirokawa
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHPSho A
 
PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011Rui Hirokawa
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019Rui Hirokawa
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話y-uti
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門kwatch
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみてSotaro Omura
 
Perl logging
Perl loggingPerl logging
Perl loggingkeroyonn
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020Rui Hirokawa
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
はじめてのPHP
はじめてのPHPはじめてのPHP
はじめてのPHPGo Tanaka
 

Mais procurados (20)

最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
PHPコアから読み解くPHP5.5
PHPコアから読み解くPHP5.5PHPコアから読み解くPHP5.5
PHPコアから読み解くPHP5.5
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
WCO2012「PHP教室」
WCO2012「PHP教室」WCO2012「PHP教室」
WCO2012「PHP教室」
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHP
 
PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011
 
あらためてPHP5.3
あらためてPHP5.3あらためてPHP5.3
あらためてPHP5.3
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみて
 
Perl logging
Perl loggingPerl logging
Perl logging
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
はじめてのPHP
はじめてのPHPはじめてのPHP
はじめてのPHP
 

Semelhante a Modern PHP Programming @ PFI Seminar

Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerHideo Kashioka
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxHideo Kashioka
 
WebAPIではじめるphp入門
WebAPIではじめるphp入門WebAPIではじめるphp入門
WebAPIではじめるphp入門Hiroaki Murayama
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015Rui Hirokawa
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜Hideo Kashioka
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3ichikaway
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1Fumito Mizuno
 
Php in ruby
Php in rubyPhp in ruby
Php in rubydo_aki
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>LaravelハンズオンセミナーTatsuyoshi Mashiko
 
PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023Rui Hirokawa
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会Yuji Otani
 
PHPの今とこれから2017
PHPの今とこれから2017PHPの今とこれから2017
PHPの今とこれから2017Rui Hirokawa
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方Soudai Sone
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたMoriyoshi Koizumi
 
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料Junichi Ishida
 

Semelhante a Modern PHP Programming @ PFI Seminar (20)

Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
 
WebAPIではじめるphp入門
WebAPIではじめるphp入門WebAPIではじめるphp入門
WebAPIではじめるphp入門
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
 
PHP 入門
PHP 入門PHP 入門
PHP 入門
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
 
Php in ruby
Php in rubyPhp in ruby
Php in ruby
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
 
PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会
 
PHP language update 201211
PHP language update 201211PHP language update 201211
PHP language update 201211
 
Cakephp api
Cakephp apiCakephp api
Cakephp api
 
PHPの今とこれから2017
PHPの今とこれから2017PHPの今とこれから2017
PHPの今とこれから2017
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
 
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
 

Mais de Sotaro Karasawa

Openpear Project の紹介
Openpear Project の紹介Openpear Project の紹介
Openpear Project の紹介Sotaro Karasawa
 
PHP Source Code Search with PHP
PHP Source Code Search with PHPPHP Source Code Search with PHP
PHP Source Code Search with PHPSotaro Karasawa
 
フレームワークxWordPress
フレームワークxWordPressフレームワークxWordPress
フレームワークxWordPressSotaro Karasawa
 
新しくなったOpenpear by nequal
新しくなったOpenpear by nequal新しくなったOpenpear by nequal
新しくなったOpenpear by nequalSotaro Karasawa
 
第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料Sotaro Karasawa
 
Introduction of openpear
Introduction of openpearIntroduction of openpear
Introduction of openpearSotaro Karasawa
 
超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめSotaro Karasawa
 
openpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンスopenpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンスSotaro Karasawa
 
Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会Sotaro Karasawa
 
Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会Sotaro Karasawa
 
Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会Sotaro Karasawa
 
Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会Sotaro Karasawa
 
Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会Sotaro Karasawa
 
Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会Sotaro Karasawa
 
Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会Sotaro Karasawa
 
第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXMLSotaro Karasawa
 

Mais de Sotaro Karasawa (20)

Ethna Updates
Ethna UpdatesEthna Updates
Ethna Updates
 
Openpear Project の紹介
Openpear Project の紹介Openpear Project の紹介
Openpear Project の紹介
 
Internship at PFI
Internship at PFIInternship at PFI
Internship at PFI
 
PHP Source Code Search with PHP
PHP Source Code Search with PHPPHP Source Code Search with PHP
PHP Source Code Search with PHP
 
フレームワークxWordPress
フレームワークxWordPressフレームワークxWordPress
フレームワークxWordPress
 
新しくなったOpenpear by nequal
新しくなったOpenpear by nequal新しくなったOpenpear by nequal
新しくなったOpenpear by nequal
 
第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料
 
Introduction of openpear
Introduction of openpearIntroduction of openpear
Introduction of openpear
 
超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ
 
openpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンスopenpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンス
 
LT openpear@LL温泉
LT openpear@LL温泉LT openpear@LL温泉
LT openpear@LL温泉
 
PHP超入門@LL温泉
PHP超入門@LL温泉PHP超入門@LL温泉
PHP超入門@LL温泉
 
Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会
 
Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会
 
Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会
 
Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会
 
Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会
 
Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会
 
Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会
 
第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML
 

Último

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Último (10)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

Modern PHP Programming @ PFI Seminar