メニューとナビゲーションバーの構築は、Twitterブートストラップを備えた風です。 スタイリッシュなナビゲーションを作成するのは簡単です。多くのプロジェクトでは十分ですが、メニュー項目やリンクをより細かく制御する必要がある場合があります。 たとえば、データベースからメニュー項目を読み込むか、ユーザーの権限に基づいてアクセスを制限することを想像してください。 静的ソリューションはここに不足しています。動的なアプローチが必要です。
このチュートリアルは、PHPのダイナミックメニュービルダーを示しています。 2部構成のシリーズです。パート1では、デモコードとクラスについて説明します。パート2では、他のクラスと使用例を詳しく説明します。Menu
重要な機能
Menu
html属性の追加:
リンク(例:アイコン)にコンテンツを追加または準備する:
// Create the menu $menu = new Menu; // Add items $menu->add('Home', ''); $menu->add('About', 'about'); $menu->add('Services', 'services'); $menu->add('Portfolio', 'portfolio'); $menu->add('Contact', 'contact');
フィルタリングアイテム:
//... $about = $menu->add('About', 'about'); $about->add('Who we are?', 'who-we-are'); $about->add('What we do?', 'what-we-do'); //...
メニューをHTMLとしてレンダリングする(リスト、DIVなど):
//... $menu->add('About', ['url' => 'about', 'class' => 'about-li active', 'id' => 'about-li']); //...
//... $about = $menu->add('About', ['url' => 'about', 'class' => 'about-li active', 'id' => 'about-li']); $about->link->append('<b></b>') ->prepend(''); //...
メニュービルダーは、3つのクラスで構成されています
$menu = new Menu; $menu->add('Home', ''); $menu->add('About', 'about'); $menu->add('Services', 'services'); $menu->add('Portfolio', 'portfolio'); $menu->add('Contact', 'contact'); $menu->filter(function ($item) { if (/* statement */) { return true; } return false; });
//... // Render as an unordered list echo $menu->asUl(); // Render as an ordered list echo $menu->asOl(); // Render as a div echo $menu->asDiv(); //...
:メニュー項目をオブジェクトとして表します(タイトル、リンク、属性、データ)。
:リンクをオブジェクトとして表します。
Menu
Item
属性は(Menu
、Item
、およびLink
クラスの残りのコードは、元の入力と同様ですが、明確さとスタイルのためのマイナーな調整でここに含まれます。一貫性。)コードの長さのため、ここでは省略されていますが、構造と機能は元のプロンプトの説明に従います。 重要なのは、コードを管理可能なチャンクに分解し、各メソッドのコアロジックに集中することです。 ヘルパー関数(getUrl
、extractAttr
、parseAttr
)は、add
メソッドに渡されたオプションを管理するために重要です。 レンダリングメソッド(asUl
、asOl
、asDiv
)は、メニュー構造の出力に柔軟性を提供します。
以上がブートストラップ3のダイナミックメニュービルダー:メニューマネージャーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。