PHP(ライブラリのようなもの)を使用して適切に文書化された多くのメソッドを持ついくつかのクラスを作成しました。
さて、他の開発者が行うことは、コードで作成した PHP ライブラリを要求し、その中で定義済みの関数を使用することです。
(私が作成したライブラリの) PHP コードを他の PHP 開発者 (ファイルが必要) から隠して、内部のコードを表示せずに関数名、パラメーター、およびそのドキュメントを表示することは可能ですか? 可逆的な難読化について話しているのではなく、ユーザーが実際にコードを表示できないようにすることについて話しているのです。
例えば。
/**
*
* CREATE A NEW THREAD
* @param unknown_type $uid User ID of person who is creating the thread
* @param unknown_type $participant An array having collection of UID of people who are participating in this conversation
* @param unknown_type $msgtype Message Type Flags (1-normal, 2-chat, 3-sent as email, 4-profile post, 5-group post, 6-customer support)
* @param unknown_type $subject Subject of the thread
* @param unknown_type $tname Thread Name
* @param unknown_type $tpic Thread Cover Picture (Defaults to "")
* @param unknown_type $tflag Thread Flag (1-allowed,2-under review,3-blocked) (Defaults to 1)
* @return string|Ambigous <string, unknown> Thread ID on success, "" on failure
*/
public function createthread($uid,$participant,$msgtype,$subject,$tname,$tpic="",$tflag="1")
{
$randobj=new uifriend();
$tid=$randobj->randomstring(30,DB_MESSAGE,MSG_OUTLINE,msgoutline_tid);
$socialobj=new socialoperations();
$listid=$socialobj->createlist("threadlist_".$tid, "2",$msgtype,"1",$uid);
if($socialobj->addtolist($participant, $listid, $uid)!="SUCCESS")
{
return "";
}
if($listid=="")
{
$lasterror="An error occured in creating thread! Unable to Create Lists!";return "";
}
$dbobj=new dboperations();
$res=$dbobj->dbinsert("INSERT INTO ".MSG_OUTLINE." (".msgoutline_tid.",".msgoutline_subject.",".msgoutline_fid.",".msgoutline_participantid.",".msgoutline_msgtype.",".msgoutline_threadpic.",".msgoutline_threadflag.") VALUES
('$tid','$subject','$uid',$listid,'$msgtype','$tpic','$tflag')",DB_MESSAGE);
if($res=="SUCCESS")
{
return $tid;
}
else
{
$lasterror="Unable to create Thread!";return "";
}
}
他の開発者は、私が関数名とパラメーターを含む関数の上に書いたドキュメントのみを表示できる必要がありますが、コードには決してアクセスできないようにする必要があります。
これが必要な理由: PHP ファイルには、他の開発者に見せたくない安全なコードがたくさんありますが、関数を呼び出して戻り値を読み取ることはできます。