php 精简框架

简介: 这个是根据面试题做出来的,最精简的框架,用一下午时间做出来。 为了功能实现,任何防护和过滤都没有。 作者:风来了.呆狐狸 <?php// 根目录define('ROOT', __DIR__);$c=trim($_REQUEST['c']);$a=trim($_REQUEST['a']);//配置加载include ROOT.'/config/config.php

这个是根据面试题做出来的,最精简的框架,用一下午时间做出来。

为了功能实现,任何防护和过滤都没有。

作者:风来了.呆狐狸

<?php
// 根目录
define('ROOT', __DIR__);
$c=trim($_REQUEST['c']);
$a=trim($_REQUEST['a']);
//配置加载
include ROOT.'/config/config.php';
header("Content-type:text/html;charset=".CHARSET);
//控制器加载
if (empty($c)) $c = 'index';
if (empty($a)) $a = 'init';
//是否已安装
if (!file_exists(ROOT.'/install.lock')) {
    $c = 'install';
    $a = 'init';
}
$file = ROOT.'/app/'.$c.'.php';
if (file_exists($file)) {
    include ROOT.'/class/DB.php';
    include ROOT.'/class/fun.php';
    include $file;
    if(class_exists($c)){
        $controller= new $c;
        if (method_exists($controller, $a)) {
            call_user_func([$controller, $a]);
        } else {
            exit('该动作不存在');
        }
    }else{
        exit('控制器不存在.');
    }
} else {
    exit('控制器不存在');
}
其他请看附件地址

http://download.csdn.net/detail/wljk506/8190339

面试题:

1. Introduction 
The following test-case1 is given to any future developer. The aim is to get to know you and the way you are working. We also want to test your basic PHP / MySQL skills. You have to use PHP / MySQL and you may use JavaScript. You should not use any predefined code downloaded from the internet. You are free on how you want to organize the files, database structure and code. You should try to develop in a way that allows for further increasing the functionality of the test-case 1 with little adjustments. 

2. Task 

A tiny version of an address-book should be developed. There should be some sort of list showing all the entries already made, a form to create new entries and edit existing ones and the possibility to export the list into a XML-file. Each entry should consist of the fields (name, first name, street, zip-code, and city) where the city should be a drop down, with cities defined in a table in the database. The design should be user-friendly but

 
3. Procedure 
You have to develop this little program on your own system, then send the code files, a file containing all the queries needed to create the database, a file with the queries to enter test-data, and a file containing the hours you have worked and on what you have been working, to us. 
4. Files to hand in 
a) Code files (may be several) 
b) File containing all the queries to setup the database 
c) File containing the queries to enter test-data 
d) The filled in journal (test-case_1.docx) 




目录
相关文章
|
25天前
|
SQL 安全 PHP
PHP 自发布以来一直在 Web 开发领域占据重要地位,PHP 8 更是带来了属性、刚性类型等新特性。
【10月更文挑战第1天】PHP 自问世以来,凭借其易用性和灵活性,在 Web 开发领域迅速崛起。从简单的网页脚本语言逐步演进为支持面向对象编程的现代语言,尤其自 PHP 5.3 引入命名空间后,代码组织和维护变得更加高效。PHP 7 的性能优化和 PHP 8 的新特性(如属性和刚性类型)进一步巩固了其地位。框架如 Laravel、Symfony、Yii2 和 CodeIgniter 等简化了开发流程,提高了效率和安全性。
38 2
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
38 2
|
3月前
|
Cloud Native 关系型数据库 MySQL
PHP的演变之路:从初生之犊到成熟框架
【8月更文挑战第20天】本文将带你穿梭时空,探索PHP这一互联网基石语言的发展历程。我们将从PHP的起源谈起,见证它如何应对时代的挑战,逐步成长为支持现代Web开发的强力工具。文章不仅追溯PHP的历史轨迹,还将深入探讨其对开发者社区的影响以及在现代技术环境中的定位和未来趋势。
60 13
|
3月前
|
安全 前端开发 PHP
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
36 0
|
2月前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
3月前
|
PHP 数据库 开发者
探索PHP的现代演变:从Web开发到框架创新
【8月更文挑战第13天】本文将深入探讨PHP语言自诞生以来的发展历程,特别是它在Web开发领域的演进和在现代框架中的创新。我们将回顾PHP的历史,分析其在不同阶段面临的挑战及解决方案,并讨论PHP如何适应新的编程范式和技术需求,以及这些变化对开发者社区的影响。
39 2
|
3月前
|
缓存 中间件 PHP
Laravel 框架:优雅 PHP Web 开发的典范
【8月更文挑战第31天】
85 0
|
3月前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
43 0
|
3月前
|
安全 JavaScript Go
探索PHP的现代演进:从Web开发到框架创新
在数字化时代的浪潮下,PHP作为一门历史悠久且广受欢迎的编程语言,其发展轨迹映射了Web开发的变迁。本文将通过具体实例和数据分析,探讨PHP如何适应现代Web开发的需求,特别是其在流行框架中的角色演变,以及这些变化如何激发开发者社区的创新精神。
51 2
|
3月前
|
JavaScript PHP 开发者
PHP中的异常处理与自定义错误处理器构建高效Web应用:Node.js与Express框架实战指南
【8月更文挑战第27天】在PHP编程世界中,异常处理和错误管理是代码健壮性的关键。本文将深入探讨PHP的异常处理机制,并指导你如何创建自定义错误处理器,以便优雅地管理运行时错误。我们将一起学习如何使用try-catch块捕获异常,以及如何通过set_error_handler函数定制错误响应。准备好让你的代码变得更加可靠,同时提供更友好的错误信息给最终用户。