2017-09-26 65 views
0

如果我可能会问,我想问一下关于“会话”,“控制器”和“会话控制器”。所以让我们从头开始:我听说过MVC并在C#(VS)中尝试过,但是当我能够理解这个概念时,我并不理解实现。这一切似乎很奇怪。现在在PHP中,这个概念变得更加清晰。PHP - 会话和控制器

现在我想问一个“会话控制器”是否像会话的控制器。看起来很直接,在措辞上,但也许我错了。尽管我最好不在当前正在开发的项目中实现MVC,但我想执行某种“控制器”来管理会话内容的分组。

虽然我想问一下,如果它可以在你的应用程序下面的脚本:

//path: c:/xampp/htdocs/starvationproject/root/index.php 
<?php 
    include '../session/controller.php'; 
?> 
<!DOCTYPE.......... 


//path: c:/xampp/htdocs/starvationproject/session/controller.php 
//I have not coded this script yet, but it will perform tasks like 
//setting the user, session variables etc. 
<?php 
    session_start(); 
?> 
// An important question here. If I include this file in the previous, can 
// I safely say that the session has been started in index because of the 
// include, or do you have to manually type out session_start(); 
// in each page? 

最后,我想问一下,如果这个文件的结构是否正确,或者更确切地说,如果它是标准的或NOR,或什么:

Folder Structure ,其中“多”(因为你可以看到)有一个在“部分”的每个文件夹,在那里我做了什么而得名页,基于对GET请求页在“多”,我包括一个部分,即:

if ($_GET['q'] == 'Add') { 
    include '../partial/stockAct/add.php'; 
} 
else if ($_GET['q'] == 'Update') { 
    include '../partial/stockAct/update.php'; 
} 

然后那些“部分”文件只能像section那样持有form或类似的东西。就像在电视上一样,我只是在切换频道。

回答

1

我会尽我所能提供帮助。

首先让我们谈谈会议。服务器使用会话来在整个单一浏览器会话中“存储”临时信息(这可以稍微修改,但我们不会放弃那个兔子洞)。在你的具体情况中,拥有会话控制器是不必要的,因为服务器处理所有的会话逻辑。例如,在登录页面上,当登录表单被推送到登录脚本时,可以简单地将用户标识添加到该点的会话中,然后无论您移动到哪个页面,用户标识仍将保留在会话。当然好处是你只需要设置一次会话,并且只在需要时访问它。这就是MVC的亮点所在,因为您可以轻松定义一个路由,其中​​特定认证类型的所有页面首先通过,以确保用户已登录/可以访问页面内容。

对于文件夹结构,我建议立即进行一些更改。首先,我确定您熟悉“public/public_html”文件夹的说法吗?这些文件夹是专门用来表示您放置前端用户将“看到”的所有文件的位置,其中包括前 - 结束js文件,css/styles和你的情况php pages。这个文件夹不应该包含任何后端逻辑,比如数据库连接或者验证脚本,因为这样可以让前端访问潜在的敏感信息(比如数据库登录我确信到您的DB_Conn.php文件中找到)。

为了解决这个问题,我建议(假设你想避免“MVC”结构)以下。

ROOT 
    ->Public //this is your WEB ROOT/ DOCUMENT ROOT folder 
     ->Pages 
     ->Style 
     ->Scripts 
     ->Assets 
      ->Images 
      ->etc. 
    ->DB 
     ->Connections 
      ->db1_conn.php 
      ->db2_conn.php 
     ->Models 
      ->User.php 
      ->Posts.php 
    ->Verification 
     ->login.php 
    ->etc 

我会喜欢完成无线就像我前段时间用这种方式构建网站一样。 MVC需要一些时间来学习,但他们最大的优势是信息的组织和流动。作为奖励,他们的流程涵盖了常见问题,如验证,安全和数据清理。不要让他们吓到你,因为那时需要学习,他们非常值得你从他们身上获得的能力。

我强烈推荐Laravel。 5.5版刚出来,哦,男孩是美的东西。希望我能帮助至少一点!

+0

谢谢。这引起了很多齿轮的研究,并给了我一个关于如何处理任务不同部分的全新观点。感谢所有的建议 –

+0

没问题,乐意帮忙! – Luke