LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

SubversionでのPreloadの管理方法

投稿ツリー

  • なし SubversionでのPreloadの管理方法 (suin, 2010/3/11 18:05)

このトピックの投稿一覧へ

suin

なし SubversionでのPreloadの管理方法

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/3/11 18:05
suin  Chief Officer 居住地: 2003.冬頃〜  投稿数: 112
個人のプロジェクトでも、SVNで管理することが多くなりました。モジュールの場合、モジュールのディレクトリ単位でバージョン管理すればいいです。一方、プリロードは1ファイルということもあり、/preloadディレクトリ置くことになっています。/preloadディレクトリ全体でバージョン管理する方法もありますが、それですと管理性があまり良くないと思います。

そこで、/preloadにサブディレクトリを作ってプリロードのバージョン管理を行う方法を紹介します。誰でも思いつきそうなことなので「もうやってるよ」という方もいらっしゃるかもしれませんが。

ディレクトリの構成はこのようにします。
/XOOPS_ROOT_PATH
	/preload
		/VersionedPreload.class.php (a)
		/VersionedPreload
			/.svn
			/VersionedPrelaod.class.php (b)
			/License.txt
			/Readme.txt

配布することを考えれば、サブディレクトリにLicense.txtやReadme.txtを置くといいでしょう。そうしておくと、svn -exportでプリロードの配布パッケージが簡単に生成できます。

VersionedPreload.class.php (a)のソースはこのようにします。
<?php

$file = basename(__FILE__);
$dir  = str_replace('.class.php', '', $file);

require $dir.'/'.$file;

?>

(a)はただ、requireするだけです。(プロキシと言ったラインだろうか。)このサンプルソースはどんなプリロードにもそのまま流用できます。なぜなら、ファイル名を動的に取得しているからです。/preloadディレクトリに(a)をひとつ作っておけば、新しくプリロードを作る度に、コピーして名前を変更するだけでいいので便利です。


(b)では、プリロードを作るときの普段どおりの書き方をするだけです。とくに変わったことをする必要もありません。ごく一般的な書き方としては下のようにすればいいでしょう。

<?php
/**
 *
 * @package    Versioned Preload
 * @author     Foo Bar <http://example.com/>
 * @copyright  2010 Foo Bar
 * @license    http://www.gnu.org/licenses/gpl-2.0.html GNU GPL v2 or later
 *
 */

if ( !defined('XOOPS_ROOT_PATH') ) exit;

class VersionedPreload extends XCube_ActionFilter
{
	public function preBlockFilter()
	{
		$this->mRoot->mDelegateManager->add('Delegate.Name', array(__CLASS__, 'doSomething'));
	}

	public static funciton doSomething(&$param)
	{
		// Do something here.
	}
}
?>

これで、あなたのPreloadバージョン管理も楽になるはずです。

参考:
SubversionでのPreloadの管理方法
http://suin.asia/2010/03/11/how_to_manage_preloads_with_subversion
投票数:0 平均点:0.00

  条件検索へ


Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities