2011-09-12 7 views
1

スレッドIDとして一意の文字列を使用する既存のコメント/ディスカッションソリューションを使用しているという事実を考えると、スレッドidの任意のオブジェクトから次の制約条件を満たすユーザー向きのスラッグを作成する必要があります。オブジェクトからクリーンなユーザー向けのスラッグを作成するにはどうすればよいですか?

  1. ショート
  2. "プリティ"
  3. 人間可読
  4. はオブジェクトインスタンスごとに一意の内部
を明らかにしません

私は{FQCN}-{id}を使用することを考えましたが、#4に違反し、ウェブでエンコードされた#2に違反します。私は同じもののmd5ハッシュも考えましたが、それは#3に違反します(潜在的に#1、 "short"の定義による)。

オブジェクトには標準化されたAPIがありません(たとえば、すべてがgetTitle()メソッドを持っているという保証はありません)。私は、スラッグに合った方法を思いつくことができませんそれらの制約。どのようにあなたは1つを作成するつもりですか、それが可能ではない場合は、どのような形式は、可能な限りいくつかの制約として違反を使用すると思いますか?

+0

「スラッグ」とは何ですか? –

+0

http://en.wikipedia.org/wiki/Slug_(web_publishing) – Problematic

+0

「人間が読める」とはどういう意味ですか?それは英語の単語から成り立つか、単に発音可能なテキストの塊でなければならないのですか? –

答えて

1

あなたは任意のオブジェクトを使用しているように聞こえますが、オブジェクトで自分自身を決定させたいと思うでしょう。あなたは、基本クラス、あるいはおそらくオブジェクトが「差し替え可能」であることを定義するインターフェースを持つことを望みます。あなたがスラグを持っているすべてのものは、これを実装する必要があります。

方法、あなたはインターフェイスに

getObjectFromSlug = function()またはfunction getObjectFromSlug()

getSlug = function()またはfunction getSlug()

を持っているでしょうし、 "コードはSluggable" の各オブジェクトを実装するのに必要とされるであろうこれは独力でそこでの唯一の問題は、手動でそれらを独自に独自にする必要があることです。

関連する問題