<?php
use Illuminate\Database\Capsule\Manager; //数据库管理类
use Dotenv\Dotenv;
//自动加载
require __DIR__.'/../vendor/autoload.php';
//引入DotEnv
$dotenv = new Dotenv(__DIR__.'/../');
$dotenv->load();
//实例化服务器容器,注册事件,路由服务提供者
$app = new Illuminate\Container\Container; //服务容器【服务的注册和解析】
/*foreach ([
'cache' => [\Illuminate\Cache\CacheManager::class, \Illuminate\Contracts\Cache\Factory::class],
'cache.store' => [\Illuminate\Cache\Repository::class, \Illuminate\Contracts\Cache\Repository::class],
'config' => [\Illuminate\Config\Repository::class, \Illuminate\Contracts\Config\Repository::class],
'files' => [\Illuminate\Filesystem\Filesystem::class],
] as $key => $aliases) {
foreach ($aliases as $alias) {
$app->alias($key, $alias);
}
}*/
with(new Illuminate\Events\EventServiceProvider($app))->register();
with(new Illuminate\Routing\RoutingServiceProvider($app))->register();
\Illuminate\Container\Container::setInstance($app);
app()->instance('cache', new \Illuminate\Cache\CacheManager(app()));
$redisConfig = [
'client' => 'predis',
'default' => [
'host' => getenv('REDIS_HOST', '127.0.0.1'),
'password' => getenv('REDIS_PASSWORD', null),
'port' => getenv('REDIS_PORT', 6379),
'database' => 0,
],
];
$client = $redisConfig['client'];
unset($redisConfig['client']);
app()->instance('redis', new \Illuminate\Redis\RedisManager($client, $redisConfig));
$cacheConfig = [
'default' => getenv('CACHE_DRIVER', 'file'),
'stores' => [
'apc' => [
'driver' => 'apc',
],
'array' => [
'driver' => 'array',
],
'database' => [
'driver' => 'database',
'table' => 'cache',
'connection' => null,
],
'file' => [
'driver' => 'file',
'path' => __DIR__.'/../storage/framework/cache/data',
],
'memcached' => [
'driver' => 'memcached',
'persistent_id' => getenv('MEMCACHED_PERSISTENT_ID'),
'sasl' => [
getenv('MEMCACHED_USERNAME'),
getenv('MEMCACHED_PASSWORD'),
],
'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
'host' => getenv('MEMCACHED_HOST', '127.0.0.1'),
'port' => getenv('MEMCACHED_PORT', 11211),
'weight' => 100,
],
],
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
],
'prefix' => getenv(
'CACHE_PREFIX',
str_slug(getenv('APP_NAME', 'laravel'), '_').'_cache'
),
];
app()->instance('config', new \Illuminate\Config\Repository(['cache' => $cacheConfig]));
$database = [
'driver' => 'mysql',
'host' => getenv('DB_HOST'),
'port' => getenv('DB_PORT', '3306'),
'database' => getenv('DB_DATABASE'),
'username' => getenv('DB_USERNAME'),
'password' => getenv('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
];
//启动Eloquent ORM 模块并进行相关配置
$manager = new Manager();
$manager->addConnection($database); //加载配置
$manager->bootEloquent(); //启动
//加载路由
require __DIR__.'/../app/Http/Routes.php';
//实例化请求并分发处理请求
$request = Illuminate\Http\Request::CreateFromGlobals();
$response = $app['router']->dispatch($request);
//返回请求响应
$response->send();
这是laravel的index.php,基本只保留了路由、控制器、缓存、数据库模型以及少部分配置。本来有个需求是这样的,但是需要再简化,只留下缓存和数据库模型(基本就是纯php了)。心疼我琢磨了好几天,舍不得删,mark在这里看看以后能不能用上
———————————————————————————————————————————————————————
改良后,基本只剩下数据库模型,redis。引入文件建议autoload,因为我试了一个个挑出来,挑了一百多个文件。可能直接引入比autoload少了一些检索时间吧,anyway我也贴出来
<?php
require 'ApiRequireFiles.php';
//自动加载
//require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/../app/Models/User.php';
use Illuminate\Database\Capsule\Manager; //数据库管理类
use Dotenv\Dotenv;
//引入DotEnv
$dotenv = new Dotenv(__DIR__.'/../');
$dotenv->load();
//数据库模型
$database = [
'driver' => 'mysql',
'host' => getenv('DB_HOST'),
'port' => getenv('DB_PORT', '3306'),
'database' => getenv('DB_DATABASE'),
'username' => getenv('DB_USERNAME'),
'password' => getenv('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
];
//启动Eloquent ORM 模块并进行相关配置
$manager = new Manager();
$manager->addConnection($database); //加载配置
$manager->bootEloquent(); //启动
//redis缓存
$redisConfig = [
'client' => 'predis',
'default' => [
'host' => getenv('REDIS_HOST', '127.0.0.1'),
'password' => getenv('REDIS_PASSWORD', null),
'port' => getenv('REDIS_PORT', 6379),
'database' => 0,
],
];
$redisManager = new \Illuminate\Redis\RedisManager(\Illuminate\Support\Arr::pull($redisConfig, 'client', 'predis'), $redisConfig);
$redis = new \Illuminate\Cache\Repository(new \Illuminate\Cache\RedisStore($redisManager, false, 'default'));
$redis = $redis->getStore();
//$redis->tags(['api-test'])->put('api','api测试123缓存',1000);
//echo $redis->tags(['api-test'])->get('api');
$user = new \App\Http\Models\User();
$user = $user->find(49)->toArray();
$redis->tags(['api-user'])->put('user49',$user,1000);
var_dump($redis->tags(['api-user'])->get('user49'));
<?php
/**
* Created by PhpStorm.
* User: huangli
* Date: 2019/3/25
* Time: 14:21
*/
require __DIR__.'/../vendor/vlucas/phpdotenv/src/Dotenv.php';
require __DIR__.'/../vendor/vlucas/phpdotenv/src/Loader.php';
require __DIR__.'/../vendor/vlucas/phpdotenv/src/Parser.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/Collection.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/helpers.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/Str.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/Arr.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Connection.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Grammar.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/Fluent.php';
require __DIR__.'/../vendor/psr/container/src/ContainerInterface.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Container/Container.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php';
//redis
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php';
require __DIR__.'/../vendor/predis/predis/src/ClientInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Configuration/OptionsInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Configuration/OptionInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/FactoryInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/ParametersInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/Parameters.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/ConnectionInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/NodeConnectionInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/AbstractConnection.php';
require __DIR__.'/../vendor/predis/predis/src/Response/ResponseInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Response/Status.php';
require __DIR__.'/../vendor/predis/predis/src/Response/ErrorInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Response/Error.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/StreamConnection.php';
require __DIR__.'/../vendor/predis/predis/src/Command/CommandInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Command/RawCommand.php';
require __DIR__.'/../vendor/predis/predis/src/Connection/Factory.php';
require __DIR__.'/../vendor/predis/predis/src/Configuration/ConnectionFactoryOption.php';
require __DIR__.'/../vendor/predis/predis/src/Profile/ProfileInterface.php';
require __DIR__.'/../vendor/predis/predis/src/Command/Command.php';
require __DIR__.'/../vendor/predis/predis/src/Command/StringSet.php';
require __DIR__.'/../vendor/predis/predis/src/Command/StringGet.php';
require __DIR__.'/../vendor/predis/predis/src/Command/SetAdd.php';
require __DIR__.'/../vendor/predis/predis/src/Command/StringSetExpire.php';
require __DIR__.'/../vendor/predis/predis/src/Profile/RedisProfile.php';
require __DIR__.'/../vendor/predis/predis/src/Profile/RedisVersion320.php';
require __DIR__.'/../vendor/predis/predis/src/Profile/Factory.php';
require __DIR__.'/../vendor/predis/predis/src/Configuration/ProfileOption.php';
require __DIR__.'/../vendor/predis/predis/src/Configuration/ExceptionsOption.php';
require __DIR__.'/../vendor/predis/predis/src/Configuration/Options.php';
require __DIR__.'/../vendor/predis/predis/src/PredisException.php';
require __DIR__.'/../vendor/predis/predis/src/Response/ServerException.php';
require __DIR__.'/../vendor/predis/predis/src/Client.php';
//require __DIR__.'/../vendor/predis/predis/autoload.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php';
require __DIR__.'/../vendor/psr/simple-cache/src/CacheInterface.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/Repository.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Contracts/Cache/Store.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/TagSet.php';
require __DIR__.'/../vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php';