实际上,我创造有趣的网站和我的一些朋友告诉我,我可以更有效的,如果我可以创建的页面与一个PHP类,将代表整个页面的输出。
我想知道你的人会怎么做。
谢谢
实际上,我创造有趣的网站和我的一些朋友告诉我,我可以更有效的,如果我可以创建的页面与一个PHP类,将代表整个页面的输出。
我想知道你的人会怎么做。
谢谢
我建议寻找到一些PHP框架,如蛋糕,如果你更熟练,这是很好的初学者,或Symfony的或Zend框架。 这些将简化你的PHP开发了很多。
我不是一个程序员OO ..但是,作为一个概念证明,并按照你的问题,你可以做/尝试这样的事情。
class Page {
public $meta_title;
public $meta_keywords;
public $html_body;
public function displayPage() {
$page ='
<html>
<head>
<title>'.$this->meta_title.'</title>
<meta name="keywords" content="'.$this->meta_keywords.'" />
</head>
<body>
'.$this->html_body.'
</body>
</html>
';
echo $page;
}
}
然后你只需使用Page类的..
$page = new Page();
$page->meta_title ="Hello world!";
$page->meta_keywords = "some text keywords";
$page->body = '<h1>Contact Us </h1>
<p>you can contact us at blah ... blah .. etc.</p>
<address>Dummy Address </address>
';
$page->displayPage();
请注意,您可以添加这么多的东西进入到它像..类变量(类型的数组)来定义样式表,JavaScript的文件..然后你只是遍历它动态地确定这些文件的单个页面。
你可以修改页面的显示功能,使之适应左,右,或顶部导航栏。 那么你也可以有像$ show_right_bar,$ show_left_bar变量来控制哪些页面显示的侧面导航栏。 所以,你可以修改和扩展到任何你的需求。
或者,你可以尝试一些PHP框架,这是更进化的解决方案,但是这真的取决于你的编程技巧和您的要求。
希望这可以帮助。
你可以做的是在存储为多维数组的页面的所有标签。 PHP是够肉麻做到这一点。 因此,每个标记将被存储在所述阵列的元件。 然后,您可以使用控制语句在不同的时间根据某些条件打印页面的不同部分。 它会有点像你当您转换XML文件到一个数组。 下面是我在想什么。
$page['html']['title'] = "Page's Title";
$page['body']['p'][1] = "1st Paragraph";
$page['body']['p'][2] = "2nd Paragraph";
然后你可以使用自己的函数来打印这些出为HTML领域。
我会建议使用一些MVC的(模型,视图,控制器)的框架存在像KohanaPHP 。 它本质上是这样的。 你在一个严格的面向对象的环境中工作。 在Kohana的一个简单的页面,从一类完全建立是这样的:
class Home_Controller extends Controller
{
public function index()
{
echo "Hello World";
}
}
然后,您可以通过访问网址youur,类名和方法名访问该页面:
http://www.mysite.com/home/ ( 指数()可以称为后回家/,但它是隐含的 )
当你开始想在数据库活动带来,你会开始与称为另一个类的工作模式 。 这将包含的方法来与数据库进行交互,如下所示:
class Users_Model extends Model
{
public function count_users()
{
return $this->db->count_records('users');
}
}
这里注意,我没有写我自己的查询。 Kohana的配备了一个直观的查询生成器 。
该方法会从你的内称为控制器 ,我们在这个解决方案中开头提到的第一类。 这将是这样的:
class Home_Controller extends Controller
{
public function index()
{
$usersModel = new Users_Model;
$userCount = $usersModel->count_users();
echo "We have " . $userCount . " users!";
}
}
最终,你会想要更复杂的布局,这将涉及到HTML / CSS / JavaScript的。 在这一点上,你会介绍了“ 意见 ”,这仅仅是表示层。 而不是调用echo
或print
从控制器内,你会加载一个视图(HTML页面,基本上是),并通过它的一些变量:
class Home_Controller extends Controller
{
public function index()
{
$myView = new View("index");
$usersModel = new Users_Model;
$userCount = $usersModel->count_users();
$myView->userCount = $userCount;
$myView->render(TRUE);
}
}
这将加载下面的“查看”
<p>We have <?php print $userCount; ?> users!</p>
这应该是足以让你开始。 使用MVC风格是真的很干净,也很有趣的工作。
这么多的方式做到这一点,确实如此。
当我做一个简单的个人网站,我通常在顶部的横幅,并在一侧的菜单。 为了防止自己不必copy'n'paste的一切,我的index.php检查一个GET变量,并基于该获得可变负载在中间适当的内容。 举例来说,我的index.php。 我的菜单居然装载了功能的内容,但是这是没有必要的/推荐:
<?php
$page = strtolower($_GET['page']);
if(!isset($page) || $page === '')
{
$page="home";
}
switch($page)
{
case "loomis":
require_once("loomis.php");
break;
case "home":
default:
$page = "home";
require_once("home.php");
break;
}
include "menu.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Nebulous - <?php getTitle($page) ?></TITLE>
<link href="style.css" rel="stylesheet" type="text/css" />
</HEAD>
<body>
<?php displayMenu() ?>
</body>
</html>
类是真正唯一有用的数据或功能的表述,而不是真的来呈现网页。
如果你有一些是在你的网页的静态OOP可以在页面渲染有用。 (例如页眉,页脚)
$index = new Page();
$index->displayHeader();
// php/html per needs
$index->displayFooter();
这是不是所有的直觉,但由于其他人说,可能性是巨大的。 我建议的主题拿起了一本书。
实现你的目标,最好的办法是开始使用HTML类。 其目的是为了写任何HTML标签,并正确缩进他们。 这不是一个简单的任务,因为我几乎没有发现一个这样的HTML类写正确的网络上。 提示:您将需要为管理HTML标签的自动关闭堆栈和该滚动到一个更大的保留缓冲区当前标签的工作缓冲器。
使用HTML类的服务,您可以建立一个网页类,将创建设置的页面。 这里的窍门是保持灵活性,而不是硬编码太多的类中。 你需要一个基本的设置,如标题,作者,关键词等阻碍他们到一个数组二传手。 然后webpage->头()应该会自动输出你的页面的顶部。 那么你应该使用功能,如webpage->标题($字符串,$大小)来创建一个标题,webpage->第($文本),webpage->图像()等。 在最后你只需要webpage->页脚()。
为了使网页类是值得的,让创建的CSS以及。 例如,如果你想使用的引导,你可以有类包括CSS和样式代码。 请注意,您还可以使网页类创建先进对象,如webpage->面包屑()或webspage->分页()