首页 > 后端开发 > 正文

有namespace的php框架 php use php namespace 到底是怎么一回事?

2023-09-22 03:33:53 | 我爱编程网

小编今天整理了一些有namespace的php框架 php use php namespace 到底是怎么一回事?相关内容,希望能够帮到大家。

有namespace的php框架 php use php namespace 到底是怎么一回事?

为什么 Laravel 会成为最成功最流行的 PHP 框架

Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,同时提供了完整而清晰的文档,而且为快速、安全地开发现代应用提供了必要的功能。

2011年,Taylor Otwell首次将Laravel带给这个世界,彼时,Laravel就是一个全新且现代的框架。Laravel基于MVC架构,可以满足诸如事件处理、用户身份验证等各种需求,同时通过包管理实现模块化和可扩展的代码,并且对数据库管理有着健壮的支持。

不管是专家还是新手,一旦接触到Laravel,都会有相见恨晚之感——这正是你在为PHP项目寻找的框架。本文我们将讨论为什么Laravel会成为最成功最流行的PHP框架。

模块化&可扩展性

Laravel是模块化和可扩展的,你可以在包含超过5500个程序包的Packalyst中找到你想要添加的任何代码。

微服务&API

Lumen是一个由Laravel衍生的专注于性能的微框架。使用Lumen提供的高性能API你可以更加简单快速地开发微型项目。Lumen使用最小的配置集成了Laravel的所有重要特性,你可以通过将代码复制到Laravel项目来实现框架的完整迁移。
<?php
$app->get('/', function() {
return view('lumen');
});

$app->post('framework/{id}', function($framework) {
$this->dispatch(new Energy($framework));
});

HTTP路由

Laravel拥有类似于Ruby on Rails的快速高效的路由系统。它可以让用户通过在浏览器上输入路径的方式让应用程序的各部分相关联。
Route::get('/', function () {
return 'Hello World';
});

HTTP中间件
Route::get('/', function () {
return 'Hello World';
});

Laravel可以通过中间件对应用进行保护——中间件会处理分析和过滤到达服务器的HTTP请求。你可以使用中间件来验证注册用户、避免跨站脚本攻击(XSS)以及其它安全问题。
<?php
namespace App\Http\Middleware;
use Closure;
class OldMiddleware {
public function handle($request, Closure $next) {
if ($request->input('age') <= 200) {
return redirect('home');
}
return $next($request);
}
}

缓存

Laravel提供了健壮的缓存系统,使用缓存可以让应用加载地更加快速,从而带来更好的用户体验。
Cache::extend('mongo', function($app) {
return Cache::repository(new MongoStore);
});

身份验证

安全是至关重要的。Laravel自带对本地用户的身份验证,并可以使用“remember” 选项来记住用户。此外你还可以引入一些额外参数,例如是否是活跃用户。
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1 ], $remember)) {
// The user is being remembered...
}

集成Stripe

Laravel Cashier可以满足你开发支付系统过程中所需要的任何需求。除此之外,它还同步并集成了用户身份验证系统。所以,你不再需要担心如何将计费系统集成到开发中了。
$user = User::find(1);
$user->subscription('monthly')->create($creditCardToken);

任务自动化

Elixir是一个让我们可以使用Gulp定义任务的Laravel API,我们可以使用Elixir定义预处理器来压缩CSS 和JavaScript。
elixir(function(mix) {
mix.browserify('main.js');
});

加密

一个安全的应用应该做到可以对数据进行加密。在Laravel中,可以使用OpenSSL和AES-256-CBC加密算法来满足你所有的加密需求。此外,所有的加密值都通过认证码进行签名以避免加密信息被篡改。
use Illuminate\Contracts\Encryption\DecryptException;
try {
$decrypted = Crypt::decrypt($encryptedValue);
} catch (DecryptException $e) {
//
}

事件处理

Laravel应用中对事件的定义、记录和监听都非常便捷。服务提供者EventServiceProvider中的listen属性包含了应用中的所有事件列表。
protected $listen = [
'App\Events\PodcastWasPurchased' => [
'App\Listeners\EmailPurchaseConfirmation',
],
];

分页

在Laravel中分页非常简单,因为它能够根据用户在浏览器中的当前页生成一系列分页链接。
<?php
namespace App\Http\Controllers;
use DB;
use App\Http\Controllers\Controller;
class UserController extends Controller {
public function index() {
$users = DB::table('users')->paginate(15);
return view('user.index', ['users' => $users]);
}
}

对象关系映射(ORM)

Laravel包含了一个数据库处理层,其中的对象关系映射被称作Eloquent。另外这个对象关系映射也适用于PostgreSQL。
$users = User::where('votes', '>', 100)->take(10)->get();
foreach ($users as $user) {
var_dump($user->name);
}

单元测试

单元测试的开发是一个耗费大量时间的任务,但是它却保证了我们的应用能够正常工作,不出问题。Laravel使用PHPUnit进行单元测试。
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase {
public function testBasicExample() {
$this->visit('/')->see('Laravel 5')->dontSee('Rails');
}
}

待办事项清单(Queue)

Laravel提供了在后台使用待办事项清单(to do list)处理复杂、漫长流程的选择,好吧,其实就是队列,队列可以让我们异步处理某些流程而不需要用户在加载页面时长时间的等待。
Queue::push ( new SendEmail ( $ message ));

有namespace的php框架 php use php namespace 到底是怎么一回事?

PHP 5.3 特性:命名空间

PHP 的一个新的重要特性就是 命名空间(namespace) 这一特性在 PHP x 时候就提出过 后来被取消并安排在 PHP 中实现 而此次又再次 提前 到了 PHP 发布 可见开发人员对其的重视以及谨慎的态度

官方发布时说明文档的内容可能已过期(documentation maybe out dated) 所以在这里简单的说明命名空间的用法 首先是声明一个命名空间 加入了新的关键字 namespace 其应在类文件的开头

<?php namespace Project::Module; class User { const STATUS_OK = true; function register($data) { } } ?>

然后在控制器中(可能是其他文件)就可以这样调用

$user = new Project::Module::User(); $user >register($register_info);

的确与平常的并无两样 但是我们可以将两个相互独立的类联系起来 比如

Project::Module::User; Project::Module::Blog;

这样就能从语言本身更容易描述和理解变量 类之间的关系 从而避免了 传统 上的 Project_Module_Blog 这样冗长的命名方式 上面的说明可能很难说明使用命名空间带来了什么好处 新增加的 use 和 as 关键字或许能更好的说明问题 use 和 as 语句可以引用和声明 命名空间的 别名 比如 上述的控制器中实例化类的代码可以这样写

use Project::Module; $user = new Module::User(); $user >register($register_info);

甚至

use Project::Module::User as ModuleUser; $user = new ModuleUser; $user >register($register_info);

类中的常量也可以通过命名空间访问 比如上述类中的 STATUS_OK 就可以通过命名空间

Project::Module::User::STATUS_OK 我爱编程网

访问 进一步的 也可以用别名简化那么长的 变量名称

use Project::Module::User::STATUS_OK as STATUS_OK; echo STATUS_OK;

顺便提下 超空间(The Global Namespace) 的概念 所谓的 超空间 就是没有指定命名空间的变量 类和函数 比如

function foo() { }

这的函数 可以使用 foo() 执行的同时 也可以使用 ::foo(); 这样执行

最后 配合使用 autoload 函数即可载入指定命名空间的类 简单的函数如下

function __autoload( $classname ) { $classname = strtolower( $classname ); $classname = str_replace( :: DIRECTORY_SEPARATOR $classname ); require_once( dirname( __FILE__ ) / $classname class php ); }

这样 比如调用

__autoload( Project::Module::User );

lishixinzhi/Article/program/PHP/201311/21303

有namespace的php框架 php use php namespace 到底是怎么一回事?

php use php namespace 到底是怎么一回事?

namespace Zend\Http\PhpEnvironment;

这句代码定义了一个命名空间,你可以理解为定义一个名称为 Zend\Http\PhpEnvironment 的域名。

在定义了之后,下面所申明的class, interface, const等都是在申明的这个“域”里面的。当引用一个申明了命名空间的包含文件,想要调用这个里面的东西,那就必须:

调整当前脚本也到这个域名里,否则,就得用namesapce的全称。

比如,inc.php 文件:

namespace Zend\Http\PhpEnvironment;

class Bar {}//定义了一个类

则其他文件调用时:

// 访问Foo的第一种方法,用全称

require 'inc.php';

$foo = new \Zend\Http\PhpEnvironment\Bar();

// 访问Foo的第二种方法

namespace Foo; // 调整当前脚本到Foo这个ns域,而且namespace申明必须在第一句

require 'inc.php';

$foo = new Bar();

延展阅读:

php官方手册中的相关内容:

在PHP中,namespace命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:

1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。

PHP 命名空间支持有两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名, 别名通过操作符 use 来实现。

以上就是我爱编程网小编为大家带来的内容了,想要了解更多相关信息,请关注我爱编程网。
与“有namespace的php框架 php use php namespace 到底是怎么一回事?”相关推荐
php框架使用gbk编码 PHP中GBK和UTF8编码是怎么回事
php框架使用gbk编码 PHP中GBK和UTF8编码是怎么回事

PHP中GBK和UTF8编码是怎么回事GBK编码,是中国通用,UTF-8是国际通用GBK是定长编码,占两个字节,UTF-8是变长编码,占3到6字节。不过目前来说UTF-8只用到三字节,还没扩展到3字节以上如果你还需要进一步理解,请搜索它们各自的编码规则php网页乱码问题。已经输入了那段用utf-8编码但还是没用,必须要点击“编码”--“中文(简体)(GBK)”&lt;?php 

2023-09-21 21:17:01
支持vue的php框架 Vue到底是怎样个框架?
支持vue的php框架 Vue到底是怎样个框架?

前端vue与后端Thinkphp在服务器的部署vue在服务端部署时,我们都知道通过npmrunbuild指令打包好的dist文件,通过http指定是可以直接浏览的,Thinkphp通过域名指向index.php文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。web服务器:apache一、跨域

2023-09-21 05:24:31
带有root目录的是哪个php框架 ThinkPHP 查询不到数据库里面的内容是怎么回事, 我的配置文件是( 'DB_TYPE'=>'
带有root目录的是哪个php框架 ThinkPHP 查询不到数据库里面的内容是怎么回事, 我的配置文件是( 'DB_TYPE'=>'

ThinkPHP查询不到数据库里面的内容是怎么回事,我的配置文件是('DB_TYPE'=>'ThinkPHP\Common文件夹中的convention.php中是tp的核心配置文件,不能乱动,如果要想更改里面的配置,在Conf文件夹里面的config.php可以配置,可以这样写&lt;?phpreturnarray('DB_TYPE'=&gt;'mysql',//数据库类型

2023-10-06 17:14:25
php框架到底怎么用 如何写一个PHP框架呢?思路是什么,需要注意些什么?
php框架到底怎么用 如何写一个PHP框架呢?思路是什么,需要注意些什么?

php需要学习哪些框架PHP需要学习哪些框架呢?让我们一起了解一下!PHP需要学习的框架有很多,下面为您例举几种常用的框架:国内框架:ThinkPHP、Canphp、KYPHP、InitPHP、SpeedPHP、CdvPHP等。国外框架:ZendFramework、Codelgniter、CakePHP、Symfony、Yii、Seagull、Laravel等。拓展:什么

2023-09-28 02:12:13
怎么判断自己用的php框架 到底如何选择PHP框架
怎么判断自己用的php框架 到底如何选择PHP框架

如何选择一门适合自己的php框架PHP作为一门成熟的WEB应用开发语言,已经深受广大开发者的青睐。与此同时,各式各样的PHP开发框架也从出不穷,面对如此多而且良莠不齐的开发框架,开发者们想必都会眼花缭乱,不知道该选择用哪个。其实并没有一个标准来衡量哪个开发框架就是最好的,开发者们需要根据自己的需求和项目要求来选择。今天蝉知小编和大家交流分享下开发者们在选择PHP开发框架时应该考虑哪些因素。

2023-10-04 20:12:23
php的yaf框架 php yaf框架 文本框失去焦点事件触发js方法 怎么连接到一起
php的yaf框架 php yaf框架 文本框失去焦点事件触发js方法 怎么连接到一起

phpyaf框架怎么使用?求各位大神,安装步骤yaf手册上有,也有标准的文件目录结构,但是yaf的数据库操作类好像要自己写,要用yaf开始一个项目的话推荐楼主先看写一个小例子,熟悉下yaf的项目部署:根据自己的情况按照手册上说的就能出现hellloworld;这样能够帮助楼主熟悉下yaf框架phpyaf框架文本框失去焦点事件触发js方法怎么连接到一起绑定事件:onblur=

2023-09-07 08:52:42
php框架怎么拼接 php yaf框架 文本框失去焦点事件触发js方法 怎么连接到一起
php框架怎么拼接 php yaf框架 文本框失去焦点事件触发js方法 怎么连接到一起

如何写一个PHP框架呢?思路是什么,需要注意些什么?第一步实现自动加载第二步实现依赖注入容器第三步实现路由第四步实现控制器第五步实现模型第六步实现最基本的一些辅助操作类1.Db类,数据库操作少不了2.数据操作类,接收过滤getpostputdelete等数据3.配置文件操作类,任何一个框架都少不了,是吧。4.模板引擎,如果是前后端分离的

2023-09-10 15:35:24
php的swoole框架 swoole到底能干什么
php的swoole框架 swoole到底能干什么

swoole到底能干什么swoole到底能干什么?swoole是一个用C语言编写的php扩展,能实现网络层的很多功能,能使PHP开发人员编写高性能的异步并发TCP、UDP、UnixSocket、HTTP,WebSocket服务。Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用PHP+Swoole作为网络通信框架,可

2023-09-09 03:25:40