Djangoにセキュリティホール

2009年10月12日(月) 14:10

trackbacked from forest book

セキュリティアップデートの Django-1.1.1 がリリースされました。 以下から CentOS 用の src.rpm をダウンロードできます。 Django-1.1.1-1.centos.src.rpm src.rpm を用いたインストール方法 ディストリビューションマクロを編集する # vi /etc/rpm/macros.centos ### dis

 多重継承はすんなり出来そう

2009年08月18日(火) 14:26

trackbacked from 幸福の疑似科学!

つくったよ!つくったよぉおお!!
XOP : Extensible Object for PHP
これできみもPHPで多重継承みたいなことができるね。

ExtensibleObjectを用いると大体次のようなことができます。

<?php
require_once( "ExtensibleObject.php" );
class RegularClass_1 {
    public $var_reg_1_1 = "var_reg_1_1";
    public function method_reg_1_1(){
        return "This method is method_reg_1_1";
    }
}
class RegularClass_2 {
    public $var_reg_2_1 = "var_reg_2_1";
    public function method_reg_2_1(){
        return "This method is method_reg_2_1";
    }
}
class RegularClass_3 {
    public $var_reg_3_1 = "var_reg_3_1";
    public function method_reg_3_1(){
        return "This method is method_reg_3_1";
    }
}
class XOP_2 extends ExtensibleObject {
    public $var_xop_2_1 = "xop_2_1";
    public function __construct(){
        // ざわ…
        // あいつ…コンストラクタで継承しやがった…
        // ざわ…ざわ…
        $this->extend( new RegularClass_3() ); // ...(1
    }
    public function method_xop_2_1(){
        return "This method is method_xop_2_1";
    }
}

class XOP_1 extends ExtensibleObject{
    public $val_1_1 = "ExtensibleObject's test class #1.";
    public $val_1_2 = "variable 1-2";
    public function method_xop_1_1(){
        return "This method is method_xop_1_1";
    }
    public function method_xop_1_2(){
        return "This method is method_xop_1_2";
    }
}


$xop1 = new XOP_1();
$xop2 = new XOP_2();
$reg1 = new RegularClass_1();
$reg2 = new RegularClass_2();
$reg3 = new RegularClass_3();

// 拡張っ…!生きるために拡張っ!
$xop1->extend( $reg1, $reg2, $xop2 ); // ...(2

// メソッドの継承……。パブリックなメソッドのみを継承…!
// string(29) "This method is method_reg_1_1"
// string(29) "This method is method_reg_2_1"
// string(29) "This method is method_reg_3_1"
// string(29) "This method is method_xop_2_1"
var_dump( $xop1->method_reg_1_1(), $xop1->method_reg_2_1(), $xop1->method_reg_3_1(), $xop1->method_xop_2_1() );

// プロパティの継承…!同上っ!
// string(11) "var_reg_1_1"
// string(11) "var_reg_2_1"
// string(11) "var_reg_3_1"
var_dump( $xop1->var_reg_1_1, $xop1->var_reg_2_1, $xop1->var_reg_3_1 );
?>

まだいろいろと問題はあります。

メソッド名、プロパティ名のバッティング
実際はExtensibleObjectは代理だから (2 のような継承をして後に、継承に使ったオブジェクトを操作するとExtensibleObjectにも影響がでる。また、その逆もある。 (1 のような継承の仕方は問題にはならないと思う。

XOP : Extensible Object for PHP

 引き出しとしてのDjango

2009年03月19日(木) 08:42

trackbacked from すぎゃーんメモ

id:hide-Kさんに招待していただき、SoozyCon7に行ってきました。ありがとうございます。 SoozyCon7 - Soozy.org 手書きメモを見返してまとめてみた。 かなり無知なので色々間違っているかもしれません。ご指摘いただけると助かります。 ■招待講演 id:everesさん「引き出し

 Pythonを始める一つの方法

2009年02月18日(水) 09:48

trackbacked from riaf-ja blog


[http://nequal.jp:nequal]では以前から「phpやめてdjangoやろーぜ」などいつも話題には上るものの、結局手をつけられずじまいだった Django ですが、先日、親分のブログに「[http://www.tsuyukimakoto.com/blog/2009/02/12/start_pythoning/:Pythonを始める一つの方法]」というエントリが。
これは乗るしか!というか、[http://tokushimakazutaka.com/:rhaco の人]に wassr で突っつかれていたのもあり、メールしてみたら



昨日届きました!!
ありがとうございます!!!
しまった、LDDの懇親会でつかって以来だったからISOあげっぱなしだ...orz



すごいですよこれ。
LL本は、EthnaとCakePHP(phpcon でもらったw)持ってますが、比べ物にならんボリュームです。
cakeの場合は、本を読んでさらにやる気がなくなってしまったので、今度は気をつけます。



というわけで、これからおいらは Django の人になります。
なにをつくろっかなーw



あ、Djangoの人になっても openpear はちゃんとやりますよ!!
突然「openpearをDjangoにおきかえる!」とか言い始めたら止めてやってください。




 ブログキットをDjango 1.0に対応した

2008年09月25日(木) 01:57

trackbacked from 常山日記

Django Snippets: Clear Django Cache feedburner middleware CSRF this! Decorator to limit request rates to individual views Google Code: django-grappelli A jazzy skin for the Django Admin-Interface Blog: ブログキットをDjango 1.0に対応した Content Based fil

 Django デバッグ用のツールバー

2008年09月21日(日) 03:41

trackbacked from 常山日記

Django Snippets: Link Media Command EncryptField collectmedia command: Copy or link media files from installed apps Unfuddle-style post-commit emails - tied to a specific Django project. Google Code: django-rcsfield A field for the django web framework w

 Aspire One レポート(mini note)

2008年09月16日(火) 03:29

trackbacked from 常山日記

自分の部屋のこだわりを投稿・共有できる『MicasaSyle』 WinBiulder を使ってVistaPE を作る(1) Googleデスクトップガジェットを5分で作る Aspire One レポート(mini note) PC-BSD 7 Released!

 Django1.0がリリースされた

2008年09月05日(金) 01:31

trackbacked from 常山日記

Django Project Japan: Django 1.0 が遂にリリースされました。 Django Snippets: lock tables decorator Form splitting/Fieldset templatetag Something like list_detail generic view but returns PDF document instead Blog: Django1.0がリリースされた 祝 Django 1.0

 loaddataでもLogを保存する

2008年08月23日(土) 17:48

trackbacked from 常山日記

Google Code: django-template-utils Library of template utilities for Django Blog: loaddataでもLogを保存する Django Apache Configuration Rails’ Flash: Now for Django djangosphinx 2.0 nikolajbaer.us Test of text 2 speech Fulltext Django Searching over mult

 Adminで行レベル権限管理

2008年07月31日(木) 03:07

trackbacked from 常山日記

Django Snippets: format content and make url to tinyurl Blog: Adminで行レベル権限管理 異なるアプリケーションのモデルに対するForeignKeyの件 A simple site-wide, per-user, date format validation system django-registration 0.6 Intermediary Models and PyMag

 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar

1 2 3 4 5 6 7