おぼえがき

おぼえがき

phpでgithubみたいなビューワー

2013-02-12 | php
こんなのあったんだ知らなかった
gitlistってやつをインストールしてみる

こんな感じで見える


cd ~/work/gitlist/
wget --no-check-certificate https://s3.amazonaws.com/gitlist/gitlist-0.3.tar.gz
tar -xzvf gitlist-0.3.tar.gz
chmod 777 cache/

config.phpの編集
client=gitコマンドのパス
repositories=レポジトリのトップディレクトリ
baseurl=ブラウザからアクセスするURL

.htaccessの編集
RewriteBaseをよしなに修正


cd ~/www/
ln -s ~/work/gitlist/ .


どんな感じで見えるかな、repositoriesで指定したディレクトリ配下に
ソース持ってきてみる
git clone xxxx@xxxxxx dev


ブラウザからアクセス
http://xxxx.xxx.ne.jp/gitlist/




できた。

うむ。みえやすい

fuelphp でpackageを作ってみる。lessphpをパッケージにしてみる

2013-01-18 | php
.lessファイルから、.cssに変換するためのfuelphpのパッケージを作ってみる

bootstrapのless使っていて毎回コンパイルすんのが面倒。
自動で出来たらいいとおもう。

==================================================
まずはパッケージを作る

package(パッケージ)つくればいいんか。
とりあえず、適当だけど、開発環境だから変換できれば良しとする

利用するのは、lessphpってやつ。

パッケージのファイル構造はこんな感じ
fuel/packages/lessphp]$ ls -R
bootstrap.php
classes/
-- lessphp.php


■bootstrap.phpの中身はこんな感じ
Autoloader::add_core_namespace('LessPHP');
Autoloader::add_classes(array(
'LessPHP' => __DIR__.'/classes/lessphp.php',
));


■lessphp.phpの中身はこんな感じ
class LessPHP
{
public static function compileFile($lessfile,$css)
{
require APPPATH.'vendor'.DS.'lessphp'.DS.'lessc.inc.php';
$less = new lessc;
$less->compileFile($lessfile, $css);
}
}

すげー雑。

==================================================
lessphpを持ってくる

lessphp本体をvendorディレクトリに置く。
fuel/app/vendor]$ ls
lessphp/
-- lessphpをダウンロードしたファイル一式(lessc.inc.phpが含まれているやつ)

==================================================
パッケージできたからconfigに設定入れよう

fuel/app/config]$ cat config.php

return array(
'always_load' => array(
'packages' => array(
'LessPHP'

==================================================
じゃー変換できるかやってみよう
コントローラーで変換させてみる

class Controller_Welcome extends Controller
{
public function action_index()
{
LessPhp::compileFile(lessのファイル,出力先のcssファイル名);
}
}
とりあえずできた。

毎回コンパイル走るのじゃまくさい。
Configファイルでオプションいれないとな
どうやって毎回走らないようにしようかな
どうやるのがいいんだろうか・・・

パッケージの作り方なんとなくわかった。


fuelphpでテンプレートエンジン(parser)を使う



FuelPHP入門
早川 聖司
ソーテック社

fuelphpでテンプレートエンジン(parser)を使う

2013-01-16 | php
fuelphpを使っているとき、テンプレートエンジン使いたい。
package/parser/を見ると、利用できるtemplate engineは
twig,mustache,md,dwoo,jade,haml,smarty,phptalこんな感じ。

View::forge();
View_Dwoo::forge();
View_Mustache::forge();
View_Markdown::forge();
View_SimpleTags::forge();
View_Twig::forge();
View_Jade::forge();
View_Haml::forge();
View_Smarty::forge();
View_Phptal::forge();

とかいう書き方しなくてはならないし、viewmodelを利用する際は、
viewmodelの中でテンプレートの指定をしなくてはならない・・・

http://fuelphp.com/forums/discussion/7839
viewmodelの中はこんな感じになる

class View_Welcome_Hello extends ViewModel
{
protected $_view = 'welcome/hello.twig';
public function view() {
$this->name = $this->request()->param('name', 'World');
}
}


じゃまくさい。ありえない。
controllerとviewmodelで同じような定義をするのも管理上気持ち悪いことこの上ない


ってことで、coreクラスをオーバーライドすることにした。
対象は、
fuel/fuel/core/classes/viewmodel.php
fuel/fuel/core/classes/controller/template.php
coreロジックに手を入れるのは、あんまり好きではない。

オーバーライドしたソースコードはこんな感じ



fuel/fuel/app]$ cat bootstrap.php
Autoloader::add_classes(array(
'Controller_Template' => APPPATH.'classes/template.php',
'ViewModel' => APPPATH.'classes/viewmodel.php',
));

-----------------------------------

fuel/fuel/app/classes]$ cat template.php
abstract class Controller_Template extends FuelCoreController_Template
{
public function before()
{
if ( ! empty($this->template) and is_string($this->template))
{
// Load the template
$this->template = \View_Phptal::forge($this->template);
}

return parent::before();
}
}

-----------------------------------

fuel/fuel/app/classes]$ cat viewmodel.php
abstract class ViewModel extends FuelCoreViewModel
{
protected function set_view()
{
$this->_view = \View_Phptal::forge($this->_view);
}
}





で、とりあえず作ってみたのは、こんな感じ
Controller_TemplateとViewModelを利用している



class Controller_Testtpl extends Controller_Template
{
public function action_index()
{
$tpl = 'xxx/index';
$this->template->title = 'title';
$this->template->main = ViewModel::forge($tpl);
}
}


class View_Xxx_Index extends ViewModel
{
public function view()
{
$this->set("xyz",123445555554);
}
}



これでいけそうだ。


fuelphp スケルトンを作る

2012-12-15 | php
fuelphpのoilコマンドを利用すると、スケルトンを簡単に作ることが出来る
今回は、controllerとviewをつくってみる
oilコマンドで作成した場合は、
ベースとなるテンプレートを作り、その中に組み込まれるテンプレートを生成する。
controllerの親クラスは、controller_templateになるため、
テンプレートへのアサインは、$this->template->XXX="hogehoge";になることに注意
  • スケルトンを作る
  • homeをコントローラー
    indexをビューとする
    oil generate controller home index
    Creating view: /home/XXXXXX/fuel/fuel/app/views/template.php
    Creating view: /home/XXXXXX/fuel/fuel/app/views/home/index.php
    Creating controller: /home/XXXXXX/fuel/fuel/app/classes/controller/home.php
    http://XXXXXX.sakura.ne.jp/test/home/
    に出来ている
    
FuelPHP入門
早川 聖司
ソーテック社

fuelphp パッケージ(package)を入れる

2012-12-15 | php

fuelphpにはpackageと言うものが存在していて、gitにコミットされたライブラリが 利用できる。
/home/XXXXX/fuel/fuel/packages
ここの配下に
email メール配信ライブラリ
oil oilコマンドのコアロジック
orm orマッパー
parser テンプレートエンジンを利用する際に使うライブラリ
などが存在していて、必要なものがoilコマンドを利用して追加が可能
  • どんなパッケージがあるんだろうか
  • /home/XXXXXX/fuel/fuel/app/config/config.php
    で定義されているのでそこにあるものがインストールできる
    http://github.com/fuel-packages
    たとえば、fuel-oauthというものがこの中にある
    oil package install oauth
    このコマンドでインストールできる
    
  • oilコマンドを利用してパッケージをアンインストール
  • インストール
    oil package install oauth
    
    アンインストール
    oil package uninstall oauth
    Package "oauth" was uninstalled.
    
  • packageを使う
  • /home/XXXXXX/fuel/fuel/app/config/config.php を修正
     array(
    'packages' => array(
    'email'
    )
    )
    ?>
    
FuelPHP入門
早川 聖司
ソーテック社