Yii2-常用应用配置

基础版配置 web.php
高级版配置 main.php

1. 资源 装配

  /assets/AppAsset.php

2.入口index.php配置 

  /web/index.php配置
  defined('YII_DEBUG') or define('YII_DEBUG', false);      //debug mode: true
  defined('YII_ENV') or define('YII_ENV', 'prod');         //debug mode: dev

3.  配置数据库

    3.1系统默认配置

   /config/db.php
   return [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=yii2basic',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ];




 3.2常用数据库配置

      /config/db.php
   return [
        'class' => 'yii\db\Connection',
        //'dsn' => 'mssql:host=localhost;dbname=shop_obd2', // MySQL, MariaDB
        //'dsn' => 'sqlite:/path/to/database/file', // SQLite
        //'dsn' => 'pgsql:host=localhost;port=5432;dbname=mydatabase', // PostgreSQL
        //'dsn' => 'cubrid:dbname=demodb;host=localhost;port=33000', // CUBRID
        'dsn' => 'sqlsrv:Server=184.168.194.53;Database=xms_mbstarshop', // MS SQL Server, sqlsrv driver
        //'dsn' => 'dblib:host=localhost;dbname=mydatabase', // MS SQL Server, dblib driver
        //'dsn' => 'mssql:host=localhost;dbname=Sql_CarSets_co_uk', // MS SQL Server, mssql driver
        //'dsn' => 'oci:dbname=//localhost:1521/mydatabase', // Oracle
       
        'username' => 'xmu_mbstarshop',
        'password' => ' ',
        'charset' => 'utf8',
        //'tablePrefix' => 'tb_',
    ];




4.WEB应用配置config/web.php

   4.1 别名配置


    'aliases' => [
       '@name1' => 'path/to/path1',        // @xxx 表示别名
       '@name2' => 'path/to/path2',
     ],

 4.2 修改布局模板

   --- 框架默认定义 ---


   yii2/base/application.php
         public $layout = 'main';

           --- 自定义配置 ---


            /config/web.php
            'layout' => 'main',
    4.3 修改默认路由

  --- 框架默认路由 ---

        yii2/web/application.php
        public $defaultRoute = 'site';

        --- 自定义修改路由 ---

        /config/web.php
        'defaultRoute' => 'index',

  4.4 配置路由 ( 配置reUrl, 和  /config/web.php 只能二选一,否则其中一个不工作)


     4.4.1 /config/web.php配置

  'urlManager' => [
            'showScriptName' => false,   // Disable index.php
            'enablePrettyUrl' => true,   // Disable r= routes
            'enableStrictParsing' => false,
            'rules'=>array(
                [
                'pattern' => 'test/about',
                'route' => 'site/about',
                //'suffix' => '.do',
                ],
                'wholesale/'=>'site/', <br>             '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', <br>             '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', <br>              ), <br>             <br>         ], </div> <div> <br> </div> <div> <br>   4.4.2  在/web/.htaccess </div> <div> <br> </div> <div>       Options FollowSymLinks <br>       RewriteEngine on <br>       RewriteRule test/abc.do$ index.php?r=/site/contact [L] <br>       RewriteCond %{REQUEST_FILENAME} !-f <br>       RewriteRule !\.(js|ico|txt|gif|jpg|png|css|html|xml)$ /index.php <br>       Options -Indexes </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br>   4.5 设置Cookie加密key </div> <div> <br> </div> <div>          /config/web.php <br>          'components' => [ <br>              'request' => [ <br>                 // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation <br>                 'cookieValidationKey' => 'life2015', <br>              ], </div> <div> <br> </div> <div>          ], </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br>   </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> 5. 资源装配配置 </div> <div> <br> </div> <div>   5.1 /assets/AppAsset.php <br>     public $css = [ <br>         'css/site.css',        //附加到header <br>     ]; <br>     public $js = [ <br>                     //'test/test1.js',默认应用根目录前缀:/web/  ,附加到footer <br>     ];  </div> <div> <br> </div> <div>   </div> <div> <br> </div> <div>    5.2 --- 在视图脚本中注册,调用 --- </div> <div> <br> </div> <div>     方法一 <br>     AppAsset::register($this);   //调用已资源管理器中已配置的文件 <br>     ?> <br>     <?php $this->beginPage() ?> <br>     <!DOCTYPE html> <br>     <html lang="<?= Yii::$app->language ?>"> <br>         <head> <br>         ... <br>         </head> <br>         <body> <br>         <?php $this->beginBody() ?> <br>         ... </div> <div> <br> </div> <div>         <?php $this->endBody() ?>    <!-- 相当于点位符 --> <br>     </body> <br>     </html> <br>     <?php $this->endPage() ?> </div> <div> <br> </div> <div> <br>     方法二,注册文件 </div> <div> <br> </div> <div> <br>     $this->registerJsFile('abc.js');   //加载在尾部,但在jquery.js之前 <br>     $this->registerJsFile('aaa.js', ['depends' => 'app\assets\AppAsset']);  //加载在jquery.js之后 </div> <div> <br> </div> <div>     方法三,注册 code block </div> <div> <br> </div> <div>     可以直接写脚本,或 </div> <div> <br> </div> <div>       <?php$this->beginBlock('test')?>  </div> <div> <br> </div> <div> $(function($){ </div> <div> <br> </div> <div> $('#mybutton').click(function(){ </div> <div> <br> </div> <div> alert('OK'); </div> <div> <br> </div> <div> }); </div> <div> <br> </div> <div> }); </div> <div> <br> </div> <div> <?php$this->endBlock()?> </div> <div> <br> </div> <div> <?php$this->registerJs($this->blocks['test'], \yii\web\View::POS_END); ?> </div> <div> <br> </div> <div>     $this->registerJs($this->blocks['test']);   //加载在尾部,但在jquery.js之前 <br>     $this->registerJs($this->blocks['test'],  ['depends' => 'app\assets\AppAsset']);  //加载在jquery.js之后 </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> 6. /config/params.php 配置参数: <br>   \Yii::$app->params['recentPosts'] </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> --- 在控制器中修改视图中的 $this->title <br>       \Yii::$app->view->title= 'from controller abc';  </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> <div> <br> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1283233216873906176"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Yii2)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1828971382990532608.htm" title="yii2自动跳转登陆 ie低版本无效" target="_blank">yii2自动跳转登陆 ie低版本无效</a> <span class="text-muted">飞狐or</span> <a class="tag" taget="_blank" href="/search/ie%E4%BD%8E%E7%89%88%E6%9C%AC%E8%AE%BF%E9%97%AEyii2%E6%A1%86%E6%9E%B6/1.htm">ie低版本访问yii2框架</a><a class="tag" taget="_blank" href="/search/yii2%E5%88%9D%E5%A7%8B%E5%8C%96%E9%85%8D%E7%BD%AE/1.htm">yii2初始化配置</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>Yii2ie低版本访问登陆页面报错如图不能自行跳转到登陆界面如图不能自行跳转到登陆界面查找原因Yii2默认验证请求头类型为public$acceptableRedirectTypes=['text/html','application/xhtml+xml'];ie低版本请求头内容类型为'application/x-ms-application'将ie请求类型增加到yii2\web\user.php</div> </li> <li><a href="/article/1826952737271672832.htm" title="yii2 中获取 模块、控制器、方法名的方法" target="_blank">yii2 中获取 模块、控制器、方法名的方法</a> <span class="text-muted">爱好者777</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>yii2中获取模块、控制器、方法名的方法在视图中在控制器中在控制器的beforeAction方法中(方法接收$action参数)在视图中模块名:$this->context->module->id;控制器名:$this->context->id;方法名:$this->context->action->id;在控制器中模块名:$this->module->id;控制器名:$this->id;方法名:</div> </li> <li><a href="/article/1768769555607388160.htm" title="Yii实现RabbitMQ队列" target="_blank">Yii实现RabbitMQ队列</a> <span class="text-muted">huaweichenai</span> <a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>一:拓展安装composerrequireyiisoft/yii2-queuecomposerrequireenqueue/amqp-lib2:RabbitMQ队列配置在配置文件中配置RabbitMQ队列'components'=>[...'queue'=>['class'=>yii\queue\amqp_interop\Queue::class,'host'=>'192.168.6.88',//</div> </li> <li><a href="/article/1767836290096627712.htm" title="Yii2 数据操作Query Builder" target="_blank">Yii2 数据操作Query Builder</a> <span class="text-muted">强哥83</span> <a class="tag" taget="_blank" href="/search/Yii2/1.htm">Yii2</a> <div>QueryBuilder$rows=(new\yii\db\Query())->select(['dyn_id','dyn_name'])->from('zs_dynasty')->where(['between','dyn_id',1,30])->limit(10)->all();print_r($rows);useyii\db\Query;$query=(newQuery())->from('</div> </li> <li><a href="/article/1756128817321099264.htm" title="Leetcode 154. Find Minimum in Rotated Sorted Array II" target="_blank">Leetcode 154. Find Minimum in Rotated Sorted Array II</a> <span class="text-muted">SnailTyan</span> <div>文章作者:Tyan博客:noahsnail.com|CSDN|1.DescriptionFindMinimuminRotatedSortedArrayII2.SolutionclassSolution{public:intfindMin(vector&nums){intleft=0;intright=nums.size()-1;while(leftnums[left]){left=mid+1;}e</div> </li> <li><a href="/article/1755075433398812672.htm" title="yii2 redis 操作list 移除操作,lrem根据值进行移除" target="_blank">yii2 redis 操作list 移除操作,lrem根据值进行移除</a> <span class="text-muted">程序小院</span> <a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/list/1.htm">list</a><a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a> <div>yii2redis操作list移除操作,lrem根据值进行移除移出并获取列表头部或尾部的第一个元素,如果没有值返回nullYii::$app->redis->lpop($key);Yii::$app->redis->rpop($key);根据值进行移除$len=Yii::$app->redis->LLEN($key);//获取元素个数Yii::$app->redis->lrem($key,$len</div> </li> <li><a href="/article/1755075432329265152.htm" title="yii2 layui文件上传带参数" target="_blank">yii2 layui文件上传带参数</a> <span class="text-muted">程序小院</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E7%89%88/1.htm">模版</a><a class="tag" taget="_blank" href="/search/layui/1.htm">layui</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>yii2layui文件上传带参数前端资源文件上传layui.use(['form','layer','upload'],function(){$=layui.jquery;varform=layui.form,layer=layui.layer,upload=layui.upload;upload.render({accept:'file',size:'20480',elem:'#upload-</div> </li> <li><a href="/article/1754801877762981888.htm" title="yii 基于php的Rbac权限控制" target="_blank">yii 基于php的Rbac权限控制</a> <span class="text-muted">fuck_life</span> <a class="tag" taget="_blank" href="/search/Yii/1.htm">Yii</a><a class="tag" taget="_blank" href="/search/Yii/1.htm">Yii</a><a class="tag" taget="_blank" href="/search/RBAC%E6%9D%83%E9%99%90%E6%8E%A7%E5%88%B6/1.htm">RBAC权限控制</a> <div>RBAC,基于角色的访问控制,对RBAC有问题的朋友,可以转移到:基于角色的访问控制RBAC一文,进行了解.Yii2中,实现的是NISTRBAC模型.Yii2中,的RBAC管理,涉及到的内容有:权限,角色,规则,为角色赋予权限,为用户分配角色.我们会以一个案例,贯穿整个RBAC的使用,请继续阅读,和跟随练习,保证可以全面了解Yii2的RBAC机制实现.目标案例准备准备一:控制器中的几个动作方法,完</div> </li> <li><a href="/article/1753598248427208704.htm" title="yii2 redis记录用户行为,list列表 重复过滤,新数据保留最前面" target="_blank">yii2 redis记录用户行为,list列表 重复过滤,新数据保留最前面</a> <span class="text-muted">程序小院</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/list/1.htm">list</a><a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a> <div>yii2redis记录用户行为,list列表重复过滤,新数据保留最前面\Yii::$app->redis->lrem($key,0,json_encode($array,true));\Yii::$app->redis->lpush($key,json_encode($array,true));\Yii::$app->redis->expire($key,2592000);重复数据删除新的数据追加</div> </li> <li><a href="/article/1752898293190377472.htm" title="Yii2之类自动加载" target="_blank">Yii2之类自动加载</a> <span class="text-muted">xiaopzi123123</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>在yii中,程序中需要使用到的类无需事先加载其类文件,在使用的时候才自动定位类文件位置并加载之,这么高效的运行方式得益于yii的类自动加载机制。Yii的类自动加载实际上使用的是PHP的类自动加载,所以先来看看PHP的类自动加载。在PHP中,当程序中使用的类未加载时,在报错之前会先调用魔术方法__autoload(),所以我们可以重写__autoload()方法,定义当一个类找不到的时候怎么去根据类</div> </li> <li><a href="/article/1752831660933529600.htm" title="yii2 mongodb 操作" target="_blank">yii2 mongodb 操作</a> <span class="text-muted">xiaopzi123123</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>->where(['['$in'=>$categoryIdArr]];类似mysqlin操作($categoryIdArr是数组)->where(['label'=>['$regex'=>'赞美诗']])模糊搜索操作$where=['status'=>1,'name'=>['$regex'=>$search]];多个条件查询andWhere()orWhere()查询字段->select(['tit</div> </li> <li><a href="/article/1751765992305868800.htm" title="Yii2.0 视图模版继承与模版相互调用" target="_blank">Yii2.0 视图模版继承与模版相互调用</a> <span class="text-muted">小马儿_</span> <div>模板继承与模板之间的相互调用在控制器中单独定义父模板public$layout='home';publicfunctionactionIndex(){return$this->render('index');}在views文件夹下layouts文件夹写一个home.phpPageTitle我是父模板//通过此方法告诉继承文件的内容放在这里模板相互调用render('test');?></div> </li> <li><a href="/article/1751145882008436736.htm" title="yii2视图渲染和前端请求及后台响应" target="_blank">yii2视图渲染和前端请求及后台响应</a> <span class="text-muted">我的楼兰0909</span> <div>username:">password:request->csrfToken?>">$('.sub').on('click',function(){varjson={};json.username=$('.username').val();json.password=$('.password').val();json._csrf=$('#_csrf').val();$.ajax({url:'/?r</div> </li> <li><a href="/article/1751122987244863488.htm" title="yii2 PHP updateAll()方法和save()方法同时使用对同一个字段更新,出现的异常情况" target="_blank">yii2 PHP updateAll()方法和save()方法同时使用对同一个字段更新,出现的异常情况</a> <span class="text-muted">huazeci</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>1、表结构2、使用updateAll()和save()方法同时对同一条数据进行更新,会出现异常情况【网上说是脏属性导致的】,大家可以自测可以看出如果设置字段的值为字符串值,则不影响最后的结果,但是如果设置的是整数值,则会影响最后想要的结果;避免这种情况出现,可以避免两个方法同时【可以上下都使用save()方法,如下图】3:同时使用save()方法,则不影响最后想要的结果结果:updateAll()</div> </li> <li><a href="/article/1751122859226316800.htm" title="YII2中使用orderby问题" target="_blank">YII2中使用orderby问题</a> <span class="text-muted">huazeci</span> <a class="tag" taget="_blank" href="/search/php%E5%B7%A5%E4%BD%9C/1.htm">php工作</a> <div>$list=$query->orderBy(['spt.create_time'=>SORT_DESC])->offset(($pageNumber-1)*$pageSize)->limit($pageSize)->asArray()->all();实际项目中如果相同值的create_time会有超过limit个数的情况,就会出现每次随机取pageSize个;例如相同值的有15个,但是limit是</div> </li> <li><a href="/article/1751122858798497792.htm" title="yii2报错 Access to debugger is denied due to IP address restriction. The requesting IP address is 172" target="_blank">yii2报错 Access to debugger is denied due to IP address restriction. The requesting IP address is 172</a> <span class="text-muted">huazeci</span> <a class="tag" taget="_blank" href="/search/php%E5%B7%A5%E4%BD%9C/1.htm">php工作</a> <div>在main-local.php添加allowedIPs即可debug是接口调用需要gii是用gii生成model需要</div> </li> <li><a href="/article/1750793705586966528.htm" title="Yii2 Formatter 格式化时间使用" target="_blank">Yii2 Formatter 格式化时间使用</a> <span class="text-muted">卢卡上学</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/yii%E6%A1%86%E6%9E%B6/1.htm">yii框架</a> <div>yii\i18n\Formatter是一个格式化的小助手,对于我们实现前端用户友好的显示有非常大的帮助。一、常用的属性$dateFormat日期格式:yyyy-MM-dd,或者“short”,“medium”,“long”,or“full”$datetimeFormat具体时间格式:yyyy-MM-ddHH:mm:ss$locale区域位置,如果没有设置,将使用yii\base\Applicati</div> </li> <li><a href="/article/1750793321900425216.htm" title="PHP - Yii2 异步队列" target="_blank">PHP - Yii2 异步队列</a> <span class="text-muted">卢卡上学</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/%E9%98%9F%E5%88%97/1.htm">队列</a> <div>1.前言使用场景在PHPYii2中,队列是一种特殊的数据结构,用于处理和管理后台任务。队列允许我们将耗时的任务(如发送电子邮件、push通知等)放入队列中,然后在后台异步执行。这样可以避免在处理大量请求时阻塞主应用程序,从而提高应用程序的性能和响应能力。批量任务需要提高处理速度,比如10万个消息,可以起10个异步队列消费进程,同时消费。延时任务,如订单超时30分钟未支付,自动取消。在Yii2中,队</div> </li> <li><a href="/article/1750054609310728192.htm" title="【多商户开源-BSD- Fecmall 电商平台】" target="_blank">【多商户开源-BSD- Fecmall 电商平台】</a> <span class="text-muted">临水逸</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E7%94%A8%E6%88%B7%E8%BF%90%E8%90%A5/1.htm">用户运营</a> <div>关于FecmallFecmall关于,Fecmall介绍Fecbbc开源BSD多商户系统,真正开源,商用免费授权的多商户系统Fecmall系统简介:全称为FancyECommerceShop,着重于电商架构的研发优化,全新定义商城的架构体系,是基于phpYii2框架之上开发的一款优秀的开源电商系统,易于系统升级,二次开发以及第三方扩展,代码100%开源,作为一款定位于商城框架功能齐全的电商系统,您</div> </li> <li><a href="/article/1749822379380457472.htm" title="Yii2 where里不转义某个字段方法|复杂条件拼接" target="_blank">Yii2 where里不转义某个字段方法|复杂条件拼接</a> <span class="text-muted">s听风忆雪</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>$query=$table::find()->select('id')->where(['and',['or',['time_type'=>1],['and',['time_type'=>2,],['or',['and',['start_time],['>=','end_time',$this->start_time],],['and',['end_time],['>=','end_time',$</div> </li> <li><a href="/article/1749822127172763648.htm" title="yii2自增自减写法" target="_blank">yii2自增自减写法</a> <span class="text-muted">s听风忆雪</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>$status=false;//自增/自减数量自减的话写成负数$editData['quantity']=new\Yii\db\Expression('`quantity`+10');//普通修改字段$editData['update_time']=time();//条件$where=['id'=>$id];try{$status=\Yii::$app->db->createCommand()-></div> </li> <li><a href="/article/1749029270723772416.htm" title="codeception在YII2中的使用" target="_blank">codeception在YII2中的使用</a> <span class="text-muted">gao922699</span> <div>codeception是一款PHP的行为测试工具,能自动化进行单元测试、功能测试、验收测试等。官网:http://codeception.com/Yii2框架已经默认集成了codeception,可以直接使用,否则需要安装。安装过程见官方。看一下高级版的frontend的tests目录结构:image.png默认已经集成了验收测试、功能测试、单元测试模块,研究里面的代码可以基本满足上述三项测试的要</div> </li> <li><a href="/article/1748795239851638784.htm" title="soar-php 2.0 - SQL 语句优化器和重写器的 PHP 扩展包、 方便 SQL 语句调优" target="_blank">soar-php 2.0 - SQL 语句优化器和重写器的 PHP 扩展包、 方便 SQL 语句调优</a> <span class="text-muted">guanguans</span> <div>soar-php是一个基于小米公司开源的soar开发的PHP扩展包,方便框架中SQL语句调优。image环境要求PHP>=7.1ext-pdo框架中使用Laravel-laravel-web-soarThinkPHP-think-soarHyperf-hyperf-soarYii2SymfonySlim安装$composerrequireguanguans/soar-php--dev使用下载Xia</div> </li> <li><a href="/article/1748162518741696512.htm" title="php rabbitmq yii2,yii2 使用 rabbitmq 扩展监听、发送消息" target="_blank">php rabbitmq yii2,yii2 使用 rabbitmq 扩展监听、发送消息</a> <span class="text-muted">一起快走吧</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a> <div>RabbitMQ是一个在AMQP基础上实现的企业级消息系统。何谓消息系统,就是消息队列系统,消息队列是“消费-生产者模型”的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。在开始前确保php安装了amqp扩展,如果没有安装,可进行安装。安装可参考:php安装amqp扩展扩展地址扩展安装composerrequiremikemadisonweb/yii2-rab</div> </li> <li><a href="/article/1747396101872304128.htm" title="YII2 前后台用户分离" target="_blank">YII2 前后台用户分离</a> <span class="text-muted">JunChow520</span> <div>后台隶属于系统管理员登录范畴,此处使用admin表作为基础,其基础字段与user表保持一致。后台登录模块采用独立模型和表单模型来完成。1.创建后台管理员表详情参见:“账户管理”2.修改后台主配置文件/backend/config/main.php'components'=>['request'=>['csrfParam'=>'_csrf-backend',],'user'=>['identityC</div> </li> <li><a href="/article/1747170725690621952.htm" title="关于Yii2基础controller和model的封装" target="_blank">关于Yii2基础controller和model的封装</a> <span class="text-muted">浪里小韭菜</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>如题,在实战项目中我们我们经常会要使用相同的逻辑,比如post/get获取参数,接口返回、参数校验等,因此可以将其封装起来调用。这里分为根目录下的控制器controllers和处理数据库的models两个文件,其他业务逻辑放在modules模块中一、根目录下controllers//BaseController.phproute=Yii::$app->requestedRoute;Yii::inf</div> </li> <li><a href="/article/1747170726676283392.htm" title="Yii2关于urlManager美化配置" target="_blank">Yii2关于urlManager美化配置</a> <span class="text-muted">浪里小韭菜</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>如题,为了api更加符合restful风格需要配置//url美化'urlManager'=>['enablePrettyUrl'=>true,'showScriptName'=>false,'enableStrictParsing'=>false,'rules'=>[//['class'=>'yii\rest\UrlRule','controller'=>['login']],//方法一:针对特定</div> </li> <li><a href="/article/1746735813074370560.htm" title="Yii2.x Modules 配置 RESTful api 使用" target="_blank">Yii2.x Modules 配置 RESTful api 使用</a> <span class="text-muted">胡乱唱歌ing</span> <div>配置giiconfig/main-local.phpif(!YII_ENV_TEST){//configurationadjustmentsfor'dev'environment$config['bootstrap'][]='debug';$config['modules']['debug']=['class'=>'yii\debug\Module',];$config['bootstrap'][</div> </li> <li><a href="/article/1745901119197954048.htm" title="【PHP】查询用户的直推、非直推、二级、三级、团队人数示例" target="_blank">【PHP】查询用户的直推、非直推、二级、三级、团队人数示例</a> <span class="text-muted">zzoood</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>目录1.构建公共函数,命名为team2.使用方法,以yii2为例首先在你的user表需要有一个字段串联推荐关系,如:我的id是666上级关系字段是superior字段值是:333_222_111或333,222,1111.构建公共函数,命名为teamandWhere("$columnREGEXP'^{$uid}_'");}elseif($level==2){//非直推$this->andWhere</div> </li> <li><a href="/article/1744622227111821312.htm" title="Yii2基于header实现版本控制" target="_blank">Yii2基于header实现版本控制</a> <span class="text-muted">killtl</span> <div>Yii2官方给出的方案是基于url的版本控制,但是我们的versoin放在header里面,需要通过header来进行版本控制,实现如下:首先在基类中实现actions,actions是针对controller的action扩展,看源码可以知道,在createAction中会先检查actionMap,而actionMap=actions(),也就是说actions里面的配置优先于controlle</div> </li> <li><a href="/article/45.htm" title="安装数据库首次应用" target="_blank">安装数据库首次应用</a> <span class="text-muted">Array_06</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>可是为什么再一次失败之后就变成直接跳过那个要求 enter full pathname of java.exe的界面 这个java.exe是你的Oracle 11g安装目录中例如:【F:\app\chen\product\11.2.0\dbhome_1\jdk\jre\bin】下的java.exe 。不是你的电脑安装的java jdk下的java.exe! 注意第一次,使用SQL D</div> </li> <li><a href="/article/172.htm" title="Weblogic Server Console密码修改和遗忘解决方法" target="_blank">Weblogic Server Console密码修改和遗忘解决方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/Welogic/1.htm">Welogic</a> <div>        在工作中一同事将Weblogic的console的密码忘记了,通过网上查询资料解决,实践整理了一下。 一.修改Console密码         打开weblogic控制台,安全领域 --> myrealm -->&n</div> </li> <li><a href="/article/299.htm" title="IllegalStateException: Cannot forward a response that is already committed" target="_blank">IllegalStateException: Cannot forward a response that is already committed</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Servlets/1.htm">Servlets</a> <div>对于初学者来说,一个常见的误解是:当调用 forward() 或者 sendRedirect() 时控制流将会自动跳出原函数。标题所示错误通常是基于此误解而引起的。 示例代码: protected void doPost() { if (someCondition) { sendRedirect(); } forward(); // Thi</div> </li> <li><a href="/article/426.htm" title="基于流的装饰设计模式" target="_blank">基于流的装饰设计模式</a> <span class="text-muted">木zi_鸣</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>当想要对已有类的对象进行功能增强时,可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能。 自定义的类成为装饰类 模仿BufferedReader,对Reader进行包装,体现装饰设计模式 装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象功能,提供更强的功能。 装饰模式比继承灵活,避免继承臃肿,降低了类与类之间的关系 装饰类因为增强已有对象,具备的功能该</div> </li> <li><a href="/article/553.htm" title="Linux中的uniq命令" target="_blank">Linux中的uniq命令</a> <span class="text-muted">被触发</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行。在正常情 况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如 果输入文件用“- ”表示,则从标准输入读取。 AD: uniq [选项] 文件 说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个</div> </li> <li><a href="/article/680.htm" title="正则表达式Pattern" target="_blank">正则表达式Pattern</a> <span class="text-muted">肆无忌惮_</span> <a class="tag" taget="_blank" href="/search/Pattern/1.htm">Pattern</a> <div>正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。   例如,我们需要对QQ号码格式进行检验 规则是长度6~12位  不能0开头  只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14} &nbs</div> </li> <li><a href="/article/807.htm" title="Oracle高级查询之OVER (PARTITION BY ..)" target="_blank">Oracle高级查询之OVER (PARTITION BY ..)</a> <span class="text-muted">知了ing</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>一、rank()/dense_rank() over(partition by ...order by ...) 现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句: select e.ename, e.job, e.sal, e.deptno from scott.emp e, (se</div> </li> <li><a href="/article/934.htm" title="Python调试" target="_blank">Python调试</a> <span class="text-muted">矮蛋蛋</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pdb/1.htm">pdb</a> <div>原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧: IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试: http://www.ibm.com/d</div> </li> <li><a href="/article/1061.htm" title="webservice传递自定义对象时函数为空,以及boolean不对应的问题" target="_blank">webservice传递自定义对象时函数为空,以及boolean不对应的问题</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a> <div>今天在客户端调用方法 NodeStatus status=iservice.getNodeStatus(). 结果NodeStatus的属性都是null。 进行debug之后,发现服务器端返回的确实是有值的对象。 后来发现原来是因为在客户端,NodeStatus的setter全部被我删除了。 本来是因为逻辑上不需要在客户端使用setter, 结果改了之后竟然不能获取带属性值的</div> </li> <li><a href="/article/1188.htm" title="java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针" target="_blank">java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针</a> <span class="text-muted">百合不是茶</span> <div>C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:   定义一个指针p来指向a的地址(&是地址符号):         </div> </li> <li><a href="/article/1315.htm" title="Eclipse打不开,提示“An error has occurred.See the log file ***/.log”" target="_blank">Eclipse打不开,提示“An error has occurred.See the log file ***/.log”</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>打开eclipse工作目录的\.metadata\.log文件,发现如下错误: !ENTRY org.eclipse.osgi 4 0 2012-09-10 09:28:57.139 !MESSAGE Application error !STACK 1 java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContai</div> </li> <li><a href="/article/1442.htm" title="spring aop实例annotation方法实现" target="_blank">spring aop实例annotation方法实现</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a><a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a> <div>        在spring aop实例中我们通过配置xml文件来实现AOP,这里学习使用annotation来实现,使用annotation其实就是指明具体的aspect,pointcut和advice。1.申明一个切面(用一个类来实现)在这个切面里,包括了advice和pointcut AdviceMethods.jav</div> </li> <li><a href="/article/1569.htm" title="[Velocity一]Velocity语法基础入门" target="_blank">[Velocity一]Velocity语法基础入门</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a> <div>用户和开发人员参考文档 http://velocity.apache.org/engine/releases/velocity-1.7/developer-guide.html   注释 1.行级注释## 2.多行注释#*  *#   变量定义 使用$开头的字符串是变量定义,例如$var1, $var2,   赋值 使用#set为变量赋值,例</div> </li> <li><a href="/article/1696.htm" title="【Kafka十一】关于Kafka的副本管理" target="_blank">【Kafka十一】关于Kafka的副本管理</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>1. 关于request.required.acks   request.required.acks控制者Producer写请求的什么时候可以确认写成功,默认是0, 0表示即不进行确认即返回。 1表示Leader写成功即返回,此时还没有进行写数据同步到其它Follower Partition中 -1表示根据指定的最少Partition确认后才返回,这个在   Th</div> </li> <li><a href="/article/1823.htm" title="lua统计nginx内部变量数据" target="_blank">lua统计nginx内部变量数据</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/lua+nginx%E3%80%80+%E7%BB%9F%E8%AE%A1/1.htm">lua nginx  统计</a> <div>server { listen 80; server_name photo.domain.com; location /{set $str $uri; content_by_lua ' local url = ngx.var.uri local res = ngx.location.capture(</div> </li> <li><a href="/article/1950.htm" title="java-11.二叉树中节点的最大距离" target="_blank">java-11.二叉树中节点的最大距离</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.ArrayList; import java.util.List; public class MaxLenInBinTree { /* a. 1 / \ 2 3 / \ / \ 4 5 6 7 max=4 pass "root" </div> </li> <li><a href="/article/2077.htm" title="Netty源码学习-ReadTimeoutHandler" target="_blank">Netty源码学习-ReadTimeoutHandler</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div> ReadTimeoutHandler的实现思路: 开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException 这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如 private final ChannelHandler timeoutHandler = new ReadTim</div> </li> <li><a href="/article/2204.htm" title="jquery验证上传文件样式及大小(好用)" target="_blank">jquery验证上传文件样式及大小(好用)</a> <span class="text-muted">cngolon</span> <a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/1.htm">文件上传</a><a class="tag" taget="_blank" href="/search/jquery%E9%AA%8C%E8%AF%81/1.htm">jquery验证</a> <div><!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="jquery1.8/jquery-1.8.0.</div> </li> <li><a href="/article/2331.htm" title="浏览器兼容【转】" target="_blank">浏览器兼容【转】</a> <span class="text-muted">cuishikuan</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/IE/1.htm">IE</a> <div>浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。 碰到频率:100% 解决方案:CSS里    *{margin:0;padding:0;} 备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设</div> </li> <li><a href="/article/2458.htm" title="Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数" target="_blank">Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/%24%23/1.htm">$#</a><a class="tag" taget="_blank" href="/search/%24%3F/1.htm">$?</a><a class="tag" taget="_blank" href="/search/%E7%89%B9%E6%AE%8A%E5%8F%98%E9%87%8F/1.htm">特殊变量</a> <div>前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果 29949   特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个</div> </li> <li><a href="/article/2585.htm" title="程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!" target="_blank">程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a> <div>翻到一本书,讲到编程一般原则是kiss:Keep It Simple, Stupid.对这个原则深有体会,其实不仅编程如此,而且系统架构也是如此。 KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原</div> </li> <li><a href="/article/2712.htm" title="android Activity间List传值" target="_blank">android Activity间List传值</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Activity/1.htm">Activity</a> <div>第一个Activity: import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import a</div> </li> <li><a href="/article/2839.htm" title="tomcat 设置java虚拟机内存" target="_blank">tomcat 设置java虚拟机内存</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/tomcat+%E5%86%85%E5%AD%98%E8%AE%BE%E7%BD%AE/1.htm">tomcat 内存设置</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2117772 http://eksliang.iteye.com/ 常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: Java heap space   ------------</div> </li> <li><a href="/article/2966.htm" title="Android 数据库事务处理" target="_blank">Android 数据库事务处理</a> <span class="text-muted">gqdy365</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事</div> </li> <li><a href="/article/3093.htm" title="Java 打开浏览器" target="_blank">Java 打开浏览器</a> <span class="text-muted">hw1287789687</span> <a class="tag" taget="_blank" href="/search/%E6%89%93%E5%BC%80%E7%BD%91%E5%9D%80/1.htm">打开网址</a><a class="tag" taget="_blank" href="/search/open%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">open浏览器</a><a class="tag" taget="_blank" href="/search/open+browser/1.htm">open browser</a><a class="tag" taget="_blank" href="/search/%E6%89%93%E5%BC%80url/1.htm">打开url</a><a class="tag" taget="_blank" href="/search/%E6%89%93%E5%BC%80%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">打开浏览器</a> <div>使用java 语言如何打开浏览器呢? 我们先研究下在cmd窗口中,如何打开网址 使用IE 打开 D:\software\bin>cmd /c start iexplore http://hw1287789687.iteye.com/blog/2153709 使用火狐打开 D:\software\bin>cmd /c start firefox http://hw1287789</div> </li> <li><a href="/article/3220.htm" title="ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件" target="_blank">ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/google+api/1.htm">google api</a><a class="tag" taget="_blank" href="/search/chrome%E6%8F%92%E4%BB%B6/1.htm">chrome插件</a> <div>Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice 由于众所周知的原因,只需替换一个域名就可以继续使用Google提供的前端公共库了。 同样,通过script标记引用这些资源,让网站访问速度瞬间提速吧</div> </li> <li><a href="/article/3347.htm" title="进程VS.线程" target="_blank">进程VS.线程</a> <span class="text-muted">m635674608</span> <a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a> <div>资料来源: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000 1、Apache最早就是采用多进程模式 2、IIS服务器默认采用多线程模式 3、多进程优缺点 优点: 多进程模式最大</div> </li> <li><a href="/article/3474.htm" title="Linux下安装MemCached" target="_blank">Linux下安装MemCached</a> <span class="text-muted">字符串</span> <a class="tag" taget="_blank" href="/search/memcached/1.htm">memcached</a> <div>前提准备:1. MemCached目前最新版本为:1.4.22,可以从官网下载到。2. MemCached依赖libevent,因此在安装MemCached之前需要先安装libevent。2.1 运行下面命令,查看系统是否已安装libevent。[root@SecurityCheck ~]# rpm -qa|grep libevent libevent-headers-1.4.13-4.el6.n</div> </li> <li><a href="/article/3601.htm" title="java设计模式之--jdk动态代理(实现aop编程)" target="_blank">java设计模式之--jdk动态代理(实现aop编程)</a> <span class="text-muted">Supanccy2013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a> <div>    与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。 &</div> </li> <li><a href="/article/3728.htm" title="Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持" target="_blank">Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持</a> <span class="text-muted">wiselyman</span> <a class="tag" taget="_blank" href="/search/spring+4/1.htm">spring 4</a> <div>2.1 默认方法(default method) java8引入了一个default medthod; 用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展 使用default关键字 Spring 4.2支持加载在默认方法里声明的bean 2.2 将要被声明成bean的类 public class DemoService { </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>