您询问其他语言如何处理此问题,除了 PHP,我没有看到任何其他语言,因此我鼓励您查看 Rails。Rails 约定很优雅,反映了@codeincarnate 在 PHP 中的版本。
在 MVC 框架中,当前视图呈现在特定于控制器的布局文件中,该布局文件封装了当前方法的相应视图。它使用“yield”方法来标识应插入视图内容的部分。一个常见的布局文件如下所示:
<html>
<head>
<% #stylesheet and js includes %>
<body>
<div id="header">Header content, menus, etc…</div>
<%= yield %>
<div id="footer">Footer content</div>
</body>
</html>
这使应用程序能够根据控制器具有不同的外观和感觉或不同的导航。在实践中,我并没有为每个控制器使用不同的布局文件,而是依赖于默认布局,即名为“应用程序”的布局。
但是,假设您有一个公司网站,有单独的“信息”、“博客”和“管理员”控制器。然后,您可以通过在与它们的控制器对应的各自布局文件中处理不同的布局视图来以干净且不显眼的方式更改每个的导航。
您始终可以通过以下方式在控制器方法中设置自定义布局:
render :layout => 'custom_layout'
Rails 中还内置了很好的辅助方法,因此您不必依赖 PHP 中的 $global 变量来确保您的 CSS 和 Javascript 路径根据您的开发环境(开发、登台、生产……)是正确的。最常见的是:
#looks in public/stylesheets and assumes it's a css file
stylesheet_link_tag "filename_without_extension"
#looks in public/javascripts and assumes it's a js file
javascript_include_tag "jquery"
当然,这些部分中的每一个都可以更详细地阐述,这只是表面上的。查看以下内容以获取更多详细信息:
http://guides.rubyonrails.org/layouts_and_rendering.html