vivi/nakima-address-bundle

该包最新版本(0.0.1)没有提供许可信息。

我的超级项目必须有超级描述

0.0.1 2017-03-30 11:15 UTC

This package is auto-updated.

Last update: 2024-09-14 10:22:26 UTC


README

首先,我们将使用此存储库来获取项目的基础代码。

  1. 克隆此存储库 git clone git@bitbucket.org:nkm_solutions/basephpproject.git my-proyect
  2. cd my-proyect
  3. rm -rf .git
  4. composer update
  5. 可选:composer autoload dump
  6. 打开composer.json文件,需要进行以下更改
    • 'Base' 改为你的项目的基命名空间
    • "name": "vivi/nakima-___-bundle"

一旦我们有了基础代码,我们就在新存储库中添加它。

  1. git init
  2. git remote add origin git@bitbucket.org:nkm_solutions/____________.git
  3. git add .
  4. git commit -m "Initial commit with BasePHPProject"
  5. git push -u origin master

然后,如果我们想在 PACKAGIST 中添加此存储库,我们将执行以下步骤

  1. 导航到:https://packagist.org.cn/packages/submit
  2. 添加存储库的HTTP URL(不包含USERNAME)
  3. 自动更新:添加以下webhook

最后,通过composer将存储库添加到symfony。

  1. composer require vivi/nakima-___-bundle dev-master

到此为止,我们就准备好了 :)

如何从头创建一个新的Symfony 3 Bundle

假设新Bundle的名称为:NakimaAddressBundle

  1. 将文件 "src/Main.php" 重命名为 "src/NakimaAddressBundle.php"

     #!php
     <?php
     namespace Nakima\AddressBundle;
    
     use Symfony\Component\HttpKernel\Bundle\Bundle;
    
     class NakimaAddressBundle extends Bundle {}
    
  2. 创建一个名为bundle的文件夹,我们将在此文件夹中放置将安装到具体项目中的文件。

  3. 创建 "bundle/AddressBundle.php"

     #!php
     <?php
     namespace AddressBundle;
    
     use Symfony\Component\HttpKernel\Bundle\Bundle;
    
     class AddressBundle extends Bundle {}
    
  4. 创建配置文件

    • src

      • src/Resources/config/admin.yml
      • src/Resources/config/config.yml
      • src/Resources/config/routing.yml
    • bundle

      • bundle/Resources/config/admin.yml

          #!yaml
          imports:
              - { resource: "@NakimaAddressBundle/Resources/config/admin.yml" }
        
      • bundle/Resources/config/config.yml

          #!yaml
          imports:
              - { resource: "@NakimaAddressBundle/Resources/config/config.yml" }
        
      • bundle/Resources/config/routing.yml

          #!yaml
          nakima_address:
              resource: "@NakimaAddressBundle/Resources/config/routing.yml"
              prefix:   /
        
  5. 修改 "AppKernel.php"

     #!yaml
     ...
    
     // NAKIMA
     ...
     new Nakima\AddressBundle\NakimaAddressBundle(),
    
     ...
    
  6. 在当前项目中添加创建的Bundle。执行

     #!bash
     php bin/console nakima:bundle:install address
    
  7. 在执行require的项目中,修改文件:"app/config/config.yml"。添加以下内容

     #!yaml
     imports:
         ...
    
         # Import bundles config
         ...
         - { resource: "@AddressBundle/Resources/config/config.yml" }
    
         # Import admin settings
         ...
         - { resource: "@AddressBundle/Resources/config/admin.yml" }
    
         ...
    
  8. 修改 "AppKernel.php"

     #!yaml
     ...
    
     // NAKIMA
     ...
    
     ...
     new AddressBundle\AddressBundle(),
    
     ...
    

新实体

  1. "src/Entity/Adress.php"

     #!php
     <?php
     namespace Nakima\AddressBundle\Entity;
    
     use Doctrine\ORM\Mapping\Entity;
     ...
    
     use Nakima\CoreBundle\Entity\BaseEntity;
    
     /**
      * @MappedSuperclass
      */
     class Address extends BaseEntity {
    
         ...
    
         /**************************************************************************
          * Custom Functions                                                       *
          **************************************************************************/
    
         public function __toString() {
             return $this->_______;
         }
    
         /**************************************************************************
          * Getters & Setters                                                      *
          **************************************************************************/
    
          ...
     }
    
  2. "bundle/Entity/Adress.php"

     #!php
     <?php
     namespace AddressBundle\Entity;
    
     use Doctrine\ORM\Mapping\Entity;
     use Doctrine\ORM\Mapping\Table;
    
     use Nakima\AddressBundle\Entity\Address AS BaseAddress;
    
     /**
      * @Entity
      * @Table(name="_address")
      */
     class Address extends BaseAddress {}
    
  3. "src/Resources/config/admin.yml"

     #!yaml
     nakima_admin:
         blocks:
             address_entity:
                 class: Nakima\AdminBundle\Block\EntityBlock
                 meta:
                     type: entity
                     label: Addresses
                     entity: AddressBundle\Entity\Address
                     icon: 'circle-o'
                     icon_color: 'x'
                     # optionals
                     admin: Nakima\AdminBundle\Admin\BaseAdmin
                     controller: NakimaAdminBundle:BaseAdmin
    
  4. 在 "bundle/Resources/config/admin.yml" 中追加

     #!yaml
     ...
    
     nakima_admin:
     blocks:
         address_entity:
             meta:
                 icon_color: 'green'
    
  5. 手动在主项目中添加所做的更改。

  6. 使用模式更新进行检查

     #!bash
     php bin/console doctrine:schema:update --force