Code Monkey home page Code Monkey logo

candy's People

Contributors

phpdump avatar qiuyuhome avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

candy's Issues

团队名称

要搞事情, 不知道搞什么.

最后我家老大说, 那你们的团队可以叫 搞事情团队.

老王又给起了一个英文的团队名称, GSQ TEAM.

现在申请投票啊.

团队的中文名称: 搞事情团队
团队的英文名称: GSQ TEAM

预使用的技术概括

  • Docker
  • Vue
  • WorkMan / Swoole
  • PostgreSQL
  • ElasticSearch / Solr / Sphinx
  • PSR 规范
  • GIT 版本控制
  • Laravel

主要是docker问题

@zhuwannian @qiuyuhome @hufangfang1 @hhyun @phpdump 如果一个小团队的用的docker,是不是还需要一个专有的docker账号,大家伙是从一个docker账户中拉取相同的环境
为了统一开发环境,是不是需要先在docker里安装一个linux镜像,之后再在这个镜像中安装nginx/php/mysql/redis的容器,
镜像,容器,仓库,这三个概念大家都是如何去区别的

我的初步想法: 每个人并行开发项目, 而不是团队协作的敏捷开发.

我们共同确定开发周期, 共同确定里程碑.
共同开发同一个项目, 每个人在自己的分支开发, 共同开发同样功能的东西, 开发过程中可以共同讨论, 每个模块开发完后, 可以共同讨论开发经验, 比较一下每个人开发的优缺点, 共同进步.

这样做的目的:
因为开发的内容是一样的. 每个人的项目都有属于自己的开发经验. 最大化的把自己的开发经验体现出来, 别人能够了解到. 遇到问题了. 也方便讨论.
如果每个人开发不通的模块, 则讨论的人都没有.

对比一下. 大家都想想, 哪种方式好一写.

举例: 我们做注册登录功能, 则每个人都做这个功能, 做完以后, 大家共享代码, 然后讨论. 合并为一个最终的最优代码.

到2018-03-22日. 要求每个人完成 lnmp 的 docker-compose.

任务安排

lnmp 的 docker-compose

  • 要确保能够正常执行.
  • nginx, msyql, postgreSQL, php7, phpmyadimin. redis. 每个都是单独的镜像.
  • 必须使用官方的基础镜像. 不能使用第三方的个人镜像.
  • 要求完全理解自己写的 docker-compose 的内容.
  • 把镜像提交到hub.docker.com
  • 把 docker-compose 提交到自己的 github 上

截止时间

2018-03-22, 晚上9点.

2018-03-12 至 2018-03-14 三天时间初步了解 docker

初步整体了解 docker

时间安排

2018-03-12 至 2018-03-14 三天时间

目的

整体性的初步了解 docker, 对 docker 有初步的认识, 找出 docker 中难点及知识点供后续学习做准备.

要求

做好博客记录, 列出 docker 中的知识点及难点, 且规划处每个知识点的学习时间.

团队聚集讨论

2018-03-15日, 晚上大概9点左右. 一起探讨总结.

docker 官方文档中文版

https://octowhale.gitbooks.io/doc2cn_docker/content/

docker 中文手册

https://yeasy.gitbooks.io/docker_practice/content/install/mac.html

docker 问答录 (100问)

https://blog.lab99.org/post/docker-2016-07-14-faq.html#wei-shi-me-shuo-bu-yao-shi-yong-import-export-save-load-commit-lai-gou-jian-jing-xiang

LNMP - Docker 多容器间协作互连

https://github.com/twang2218/docker-lnmp

dnmp

https://github.com/yeszao/dnmp

学习过程中, 有好的资源或者教程, 共享出来.

[2018-04-10 20:16:09] monolog, 会用, 但是不理解 Registry::spider()->error('xxxxx');

[2018-04-10 20:16:09]

monolog 中, 可以注册为全局.

        $this->logger = new Logger('spider');
        Registry::addLogger($this->logger);

然后可以在任何地方直接使用.

Registry::spider()->error('push 到队列失败.');

我不理解. 我去查看了 Registry 这个类的代码. 如下.


<?php

/*
 * This file is part of the Monolog package.
 *
 * (c) Jordi Boggiano <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Monolog;

use InvalidArgumentException;

/**
 * Monolog log registry
 *
 * Allows to get `Logger` instances in the global scope
 * via static method calls on this class.
 *
 * <code>
 * $application = new Monolog\Logger('application');
 * $api = new Monolog\Logger('api');
 *
 * Monolog\Registry::addLogger($application);
 * Monolog\Registry::addLogger($api);
 *
 * function testLogger()
 * {
 *     Monolog\Registry::api()->addError('Sent to $api Logger instance');
 *     Monolog\Registry::application()->addError('Sent to $application Logger instance');
 * }
 * </code>
 *
 * @author Tomas Tatarko <[email protected]>
 */
class Registry
{
    /**
     * List of all loggers in the registry (by named indexes)
     *
     * @var Logger[]
     */
    private static $loggers = array();

    /**
     * Adds new logging channel to the registry
     *
     * @param  Logger                    $logger    Instance of the logging channel
     * @param  string|null               $name      Name of the logging channel ($logger->getName() by default)
     * @param  bool                      $overwrite Overwrite instance in the registry if the given name already exists?
     * @throws \InvalidArgumentException If $overwrite set to false and named Logger instance already exists
     */
    public static function addLogger(Logger $logger, $name = null, $overwrite = false)
    {
        $name = $name ?: $logger->getName();

        if (isset(self::$loggers[$name]) && !$overwrite) {
            throw new InvalidArgumentException('Logger with the given name already exists');
        }

        self::$loggers[$name] = $logger;
    }

    /**
     * Checks if such logging channel exists by name or instance
     *
     * @param string|Logger $logger Name or logger instance
     */
    public static function hasLogger($logger)
    {
        if ($logger instanceof Logger) {
            $index = array_search($logger, self::$loggers, true);

            return false !== $index;
        } else {
            return isset(self::$loggers[$logger]);
        }
    }

    /**
     * Removes instance from registry by name or instance
     *
     * @param string|Logger $logger Name or logger instance
     */
    public static function removeLogger($logger)
    {
        if ($logger instanceof Logger) {
            if (false !== ($idx = array_search($logger, self::$loggers, true))) {
                unset(self::$loggers[$idx]);
            }
        } else {
            unset(self::$loggers[$logger]);
        }
    }

    /**
     * Clears the registry
     */
    public static function clear()
    {
        self::$loggers = array();
    }

    /**
     * Gets Logger instance from the registry
     *
     * @param  string                    $name Name of the requested Logger instance
     * @throws \InvalidArgumentException If named Logger instance is not in the registry
     * @return Logger                    Requested instance of Logger
     */
    public static function getInstance($name)
    {
        if (!isset(self::$loggers[$name])) {
            throw new InvalidArgumentException(sprintf('Requested "%s" logger instance is not in the registry', $name));
        }

        return self::$loggers[$name];
    }

    /**
     * Gets Logger instance from the registry via static method call
     *
     * @param  string                    $name      Name of the requested Logger instance
     * @param  array                     $arguments Arguments passed to static method call
     * @throws \InvalidArgumentException If named Logger instance is not in the registry
     * @return Logger                    Requested instance of Logger
     */
    public static function __callStatic($name, $arguments)
    {
        return self::getInstance($name);
    }
}

为什么使用 Registry::spider()->error('push 到队列失败.'); 这样的语句, 就可以使用. 根本没有 spider() 这个方法. 这个是如何实现的?

发表问题中包含代码, 要使用markdown的语法指明是什么语言, 以便高亮显示

不熟悉 markdown 的, 要了解一下. 以后的文档和 github 会经常用到.

代码高亮的 markdown 语法

shell 输出

```shell
[root@iz2zej8sniw3fljoetkyf6z lib]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 4760dc956b2d 2 days ago 107MB
php 7.2-fpm 7e3349fbb49c 2 days ago 367MB
mysql latest 5195076672a7 3 days ago 371MB
redis 4.0.8-alpine c27f56585938 3 days ago 27.7MB
khs1994/php-fpm 7.2.3-alpine3.7 45f54b648ad3 7 days ago 155MB
phpmyadmin/phpmyadmin latest 328692480804 11 days ago 166MB
khs1994/nginx 1.13.9-tls1.3-stretch f95aec4e68c8 3 weeks ago 110MB
nginx alpine 537527661905 3 weeks ago 17.9MB
mysql 8.0.3 00400babc1b7 3 weeks ago 343MB
```

显示为:

[root@iz2zej8sniw3fljoetkyf6z lib]# docker image ls
REPOSITORY              TAG                     IMAGE ID            CREATED             SIZE
redis                   latest                  4760dc956b2d        2 days ago          107MB
php                     7.2-fpm                 7e3349fbb49c        2 days ago          367MB
mysql                   latest                  5195076672a7        3 days ago          371MB
redis                   4.0.8-alpine            c27f56585938        3 days ago          27.7MB
khs1994/php-fpm         7.2.3-alpine3.7         45f54b648ad3        7 days ago          155MB
phpmyadmin/phpmyadmin   latest                  328692480804        11 days ago         166MB
khs1994/nginx           1.13.9-tls1.3-stretch   f95aec4e68c8        3 weeks ago         110MB
nginx                   alpine                  537527661905        3 weeks ago         17.9MB
mysql                   8.0.3                   00400babc1b7        3 weeks ago         343MB

docker 搭建的 lnmp 环境在 phpstrom 中如何设置

问题描述

docker 搭建的 lnmp 环境, 在 phpstorm 中如何设置呢?

xdebug 如何设置?

疑问

我没设置成功, 不知道是哪里有问题. 谁设置成功了发一下成功的案例呗. 最好是每步都截个图.

共同进步, 协同学习的方案

概述

共同进步, 协同学习的方案, 跟项目无关, 是指大家共同拟定一个小的计划, 然后大家在指定的时间内, 学习了解新的技术知识点, 最后在把自己的理解共享出来. 达到协同学习的目的.

举例

大家都学习一下 laravel 的源码, 以及 laravelThinkPHP 区别. 学习时间为5天, 5天后, 晚上9点到10点之间语音讨论遇到的问题和交流经验.

实现方式

写技术博客或者笔记.
*推荐都弄一个 gitpage 的免费博客. *

目的

在较短的时间内, 了解新的知识点.

在一个团队内, 就应该充分的利用团队的优势, 人多力量大, 共同学习比自己一个人研究更效率.

大家还有什么好的方案. 留言讨论吧.

发表 Issues 的注意事项.

一个问题一个 Issue

不要在一个 Issue 中发表多个问题.

标题要明确

目的是通过标题就大概知道是什么问题.

一定要分配给其他人

这样比人就能得到通知了.

image

image

要给这个 Issue 标记 labels

这样可以分类, 别人一眼就知道这个是什么类型的问题.

image

指定所属的项目

image

[2018-04-07 15:12:21] PHP 中的接口 ArrayAccess 不理解

<?php
/**
 * arrayaccess 官方接口测试.
 * User: qiuyu
 * Date: 2018/4/7
 * Time: 下午3:06
 */

namespace Test;

class Obj implements \ArrayAccess
{
    private $container = array();

    public function __construct()
    {
        $this->container = array(
            "one" => 1,
            "two" => 2,
            "three" => 3,
        );
    }

    public function offsetSet($offset, $value)
    {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    public function offsetExists($offset)
    {
        return isset($this->container[$offset]);
    }

    public function offsetUnset($offset)
    {
        unset($this->container[$offset]);
    }

    public function offsetGet($offset)
    {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new Obj;

var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);

为什么会可以使用数组的形式调用?

[2018-04-06 14:42:09] PHPSTORM 中使用 phpcs 报错

[2018-04-06 14:42:18]

2018/4/6
下午1:43	PHP Code Sniffer
				phpcs: Can not correctly run the tool with parameters:
				/private/var/folders/gt/_7v3n94501x5cp5rdgbddq0w0000gn/T/phpcs_temp.tmp/Application/Deal/Controller/ListController.class.php
				--standard=PSR2
				--encoding=utf-8
				--report=xml
				Possible tool process hangup after 5 sec.
				Exclude ListController.class.php from PHP Code Sniffer analysis.

这个应该如何处理?

[2018-04-06 14:42:09] PHPSTORM 中使用 phpcs 报错

[2018-04-06 14:42:18]

2018/4/6
下午1:43	PHP Code Sniffer
				phpcs: Can not correctly run the tool with parameters:
				/private/var/folders/gt/_7v3n94501x5cp5rdgbddq0w0000gn/T/phpcs_temp.tmp/Application/Deal/Controller/ListController.class.php
				--standard=PSR2
				--encoding=utf-8
				--report=xml
				Possible tool process hangup after 5 sec.
				Exclude ListController.class.php from PHP Code Sniffer analysis.

这个应该如何处理?

docker 镜像无法删除

[root@iz2zej8sniw3fljoetkyf6z lib]# docker image ls
REPOSITORY              TAG                     IMAGE ID            CREATED             SIZE
redis                   latest                  4760dc956b2d        2 days ago          107MB
php                     7.2-fpm                 7e3349fbb49c        2 days ago          367MB
mysql                   latest                  5195076672a7        3 days ago          371MB
redis                   4.0.8-alpine            c27f56585938        3 days ago          27.7MB
khs1994/php-fpm         7.2.3-alpine3.7         45f54b648ad3        7 days ago          155MB
phpmyadmin/phpmyadmin   latest                  328692480804        11 days ago         166MB
khs1994/nginx           1.13.9-tls1.3-stretch   f95aec4e68c8        3 weeks ago         110MB
nginx                   alpine                  537527661905        3 weeks ago         17.9MB
mysql                   8.0.3                   00400babc1b7        3 weeks ago         343MB
[root@iz2zej8sniw3fljoetkyf6z lib]# docker rmi $(docker images -q)
Error: No such image: 4760dc956b2d
Error: No such image: 7e3349fbb49c
Error: No such image: 5195076672a7
Error: No such image: c27f56585938
Error: No such image: 45f54b648ad3
Error: No such image: 328692480804
Error: No such image: f95aec4e68c8
Error: No such image: 537527661905
Error: No such image: 00400babc1b7
[root@iz2zej8sniw3fljoetkyf6z lib]# 

docker生成重复镜像

问题描述

我把所有的镜像全部删除,重新运行./lnmp-docker.sh development 就会生成重复的镜像

[root@iz2zej8sniw3fljoetkyf6z lnmp]# docker image ls
REPOSITORY              TAG                     IMAGE ID            CREATED             SIZE
redis                   4.0.8-alpine            c27f56585938        3 days ago          27.7MB
redis                   4.0.8-alpine            c27f56585938        3 days ago          27.7MB
khs1994/php-fpm         7.2.3-alpine3.7         45f54b648ad3        7 days ago          155MB
khs1994/php-fpm         7.2.3-alpine3.7         45f54b648ad3        7 days ago          155MB
phpmyadmin/phpmyadmin   latest                  328692480804        11 days ago         166MB
phpmyadmin/phpmyadmin   latest                  328692480804        11 days ago         166MB
khs1994/nginx           1.13.9-tls1.3-stretch   f95aec4e68c8        3 weeks ago         110MB
khs1994/nginx           1.13.9-tls1.3-stretch   f95aec4e68c8        3 weeks ago         110MB
mysql                   8.0.3                   00400babc1b7        4 weeks ago         343MB
mysql                   8.0.3                   00400babc1b7        4 weeks ago         343MB
[root@iz2zej8sniw3fljoetkyf6z lnmp]# 

疑问

虽然不影响使用但是不知道什么原因造成的,我在另一台服务器不会有这个问题

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.