① php composer怎么用
Composer很好的解决了PHP的包管理和依赖问题,只需要import一个文件,Composer中管理的所有库就会按需加载,而不需要每个import。
先介绍一下Composer的安装。Composer的官方地址: https://getcomposer.org/
安装
curl -sS https://getcomposer.org/installer | php
这样在当前目录下会下载一个composer.phar的文件,为了方便,我们可以重命名一下,并放到/usr/local/bin下,方便执行。
mv composer.phar /usr/local/bin/composer
使用
一般我习惯把Composer放在/opt下,所以先创建一个Composer的目录
mkdir /opt/composer
先下载一个KLogger,一个写日志的库,本人比较喜欢。
cd /opt/composer
composer require katzgrau/klogger:dev-master
这样,KLogger就被下载下来了,使用很简单,只需要引入一个文件。
<?php
require '/opt/composer/vendor/autoload.php';
$logger = new Katzgrau\KLogger\Logger(__DIR__.'/logs');
...
KLogger可以使用了,我们在下载一个别的库,Medoo:一个轻量级的数据库框架。同样的方式来下载。
cd /opt/composer
composer require catfan/Medoo
使用同理
<?php
require '/opt/composer/vendor/autoload.php';
$medoo = new medoo();
//继续使用KLogger
$logger = new Katzgrau\KLogger\Logger(__DIR__.'/logs');
...
使用很简单,只要引入了 vendor/autoload.php ,就可以自动引入用到库,的确很酷。
加速
如果发现composer执行起来很慢,可以考虑换个镜像。这里推荐一个日本的镜像: http://composer-proxy.jp/ 。
执行
composer config -g -e
编辑后
{
"config": {}
,
"repositories": [
{ "packagist": false },
{
"type": "composer",
"url": "http://composer-proxy.jp/proxy/packagist"
}
]
}
如果发现composer长时间没反应,可以在执行时候加入 -vvv 选项,可以输出更多信息,方便查找问题。
composer -vvv require ...
最后
PHP的 spl_autoload_register 可以很方便做按需引入,当 new 一个类没发现的时候,就会触发,然后我们自己按照规则来处理引入。
一个简单的例子
<?php
class ClassAutoloader
{
public function __construct()
{
spl_autoload_register(array($this, 'loader'));
}
public function loader($className)
{
$file = dirname(__FILE__) . '/' . $className . '.php';
if (is_file($file)) {
require $file;
}
}
}
$autoloader = new ClassAutoloader();
② PHP的include引用上级文件问题。
这不是引入的问题,你定义的类,类外的值是不会进来的,想要实现你这个功能Medoo.Min.php要这样:
<?php
include '../config.php';
class medoo{
function __construct( $server, $username, $password ){
$this->server = $server;
$this->username = $username;
$this->password = $password;
}
//如果要在类里使用就这样调用:
$this->server;
}
//使用时这样用
$medoo = new medoo($server, $username, $password);
$server = $medoo->server;
③ php fatal error: call to undefined method medoo:
PHP的致命错误:调用未定义的方法$engine:: enterGame()
说明在$engine这个对象中没有enterGame()这个方法函数
追问:
那应该怎么办呀?可以具体些么
追答:
就你这点代码,无法分析!
只是给你一个比方:
比如有这么一个php类:
1
2
3
4
5
6
7
8
9
<?php
class a{
function b(){
echo '您好';
}
}
?>
接着来实例化这个类并调用这个类中的一个方法函数 b
1
2
3
4
5
<?php
$a = new a;//这里就实力化了上面的类 a,并把这个对象赋值给变量$a
$a -> b();//这里就是调用了类对象中的b方法函数,这里是运行正常的
$a -> c();//这里和上面的一样,也是调用了类对象中的方法函数,但这里就会出现你所出现的错误,因为,类对象中压根就没有c这个方法函数
?>
④ 有没有好用的开源的php mysql class,相仿medoo
好用不好用有一定主观性,最起码你得有一定要求,我个人使用github上的sparrow。
⑤ 有没有好用的开源的php mysql class,类似medoo
medoo怎么没有orderby和limit
⑥ php的medoo的select中的排序,怎么才能设置DESC
top并不是所有数据库都支持的
select * from user order by id desc limit 1
limit 是对取的条数进行限制,如果只按顺序取10条就limit 10,类似
⑦ medoo应用在哪个php框架
medoo只是一个单纯的php操作数据库的类库,支持多种数据库,依赖PDO
觉得哪个框架的关于数据库类库不好用,可以用这个替换~
⑧ 如何在PHP应用中防止SQL注入
对提交过来的数据进行过滤,一般是过滤%、*、空格、双引号、单引号等。
或者使用护卫神. 入侵防护系统来过滤,程序里面就无需考虑了。
⑨ 使用medoo会和别的php框架冲突吗
用框架能造房子,用类只能造个门。 简单的说,框架提供了快速搭建网站需要的全部组件。而类可能只是其中的一个组件
⑩ php爬虫框架哪个好用
Beanbun使用的是workman和guzzle,数据库使用的是medoo,支持分布式部署,可以使用内存(估计是workman自带的容器)和redis做队列,可以方便灵活的制作插件,扩展性强。
Beanbag安装方便,可以使用composer进行安装:
$composerrequirekiddyu/beanbun