Kilka pytań

Witam forumowiczów,

Jestem początkującym użytkownikiem Yii, mam kilka pytań.

[list=1]

[*]Czy trzeba kopiować całą aplikację Yii na serwer, czy wystarczą poszczególne katalogi plus nasze pliki kontrolerów, modeli i widoków, aby strona działała ? Jak to zrobić, aby zbudować tylko to co jest potrzebne i to przegrać na serwer.

[*]Jak zmienić zmienną $content w layout’cie main.php ?

[*]ORM to Object-Relational Mapping. W Yii, to klasa ActiveRecord ?

[*]Czy dobrze rozumuje? Dla kontrolera istnieje możliwość zmiany domyślnego layout’u z main.php na dowolny inny za pomocą nadpisania właściwości/atrybutu:

public $layout = „nowylayout”; // w sekcji właściwości klasy-kontrolera

Dla zmiennej $content, można utworzyć dowolny layout (układ) i zapisać do katalogu views/layouts.

Layout jest dla kontrolera (konkretnie dla akcji). Akcje tworzą zmienną $content.

[/list]

Z góry dzięki za odpowiedzi. Pozdrawiam

  1. Nie wiem co rozumiesz przez “całą aplikację”, ale na serwerze musi znaleźć się wszystko co jest wymagane, a wymagania zapisane są w composer.json. Najprościej jest przesłać własne pliki bez folderu ‘vendor’ i uruchomić composera na serwerze, który pobierze wszystko co jest wymagane, umieszczając to właśnie w ‘vendor’.

  2. Co rozumiesz przez "zmienić zmienną $content"? Do $content są wstrzykiwane wyrenderowane widoki akcji kontrolerów.

  3. Tak.

  4. Tak.

Hej, dzięki za info. Czy mógłbyś coś doprecyzować?

  1. Czy masz może link do jakiejś stronki z tutorialem do tego - jak utworzyć własną aplikację (tylko wybrane pliki, czyli moje własne kontrolery, modele i widoki plus potrzebne sktypty aby aplikacja działała)? Przeszukałem trochę googla, ale nic takiego nie wpadło mi do oka. Wiem tyle, że trzeba do tego composera ale nie wiele się orientuje z zamieszczonej tam instrukcji.

Dzięki za pomoc.

Pozdrawiam

Dla przykładu dla projektu typu basic, który opisany jest tutaj http://www.yiiframework.com/doc-2.0/guide-start-installation.html :

Szkielet aplikacji znajduje się tutaj https://github.com/yiisoft/yii2-app-basic

I to jest też mniej więcej to, co jest potrzebne, z dokładnością do folderów, których być może nie użyjesz, jak commands i tests.

Uruchomienie composera pobierze wszystko co jest wymagane, a nie znajduje się w powyższym szkielecie.

Zainstalowałem szkielet aplikacji, ten który podałeś. Zainstalowałem composera z exe’ca. Po próbie uruchomienia composera na pliku composer.json w głównym katalogu framework’a (opcja install) oraz innych opcjach w shell’u (x64->composer options) dostaje ten sam komunikat, który niestety mało nmi mówi. Przy próbach uruchamiałem wszystko jako administrator.

Tutaj link do komunikatu

A zainstalowałeś composer-asset-plugin jak jest podane w instrukcji?

Ok za Twoją radą zainstalowałem. Zainstalowałem, pobrałem tokena i dałem shell->install w katalogu frameworka. Pościągał wszystko do katalogu vendor (19MB). Jak rozumiem composer instaluje wszsytko co ma w pliku composer.json. Jak go zmienić, żeby brał tylko to co niezbędne dla aplikacj (w tym przypadku chyba sitecontroller)? Poniżej mój composer.json


{

    "name": "yiisoft/yii2-app-basic",

    "description": "Yii 2 Basic Project Template",

    "keywords": ["yii2", "framework", "basic", "project template"],

    "homepage": "http://www.yiiframework.com/",

    "type": "project",

    "license": "BSD-3-Clause",

    "support": {

        "issues": "https://github.com/yiisoft/yii2/issues?state=open",

        "forum": "http://www.yiiframework.com/forum/",

        "wiki": "http://www.yiiframework.com/wiki/",

        "irc": "irc://irc.freenode.net/yii",

        "source": "https://github.com/yiisoft/yii2"

    },

    "minimum-stability": "dev",

    "require": {

        "php": ">=5.4.0",

        "yiisoft/yii2": ">=2.0.5",

        "yiisoft/yii2-bootstrap": "*",

        "yiisoft/yii2-swiftmailer": "*"

    },

    "require-dev": {

        "yiisoft/yii2-codeception": "*",

        "yiisoft/yii2-debug": "*",

        "yiisoft/yii2-gii": "*",

        "yiisoft/yii2-faker": "*"

    },

    "config": {

        "process-timeout": 1800

    },

    "scripts": {

        "post-create-project-cmd": [

            "yii\\composer\\Installer::postCreateProject"

        ]

    },

    "extra": {

        "yii\\composer\\Installer::postCreateProject": {

            "setPermission": [

                {

                    "runtime": "0777",

                    "web/assets": "0777",

                    "yii": "0755"

                }

            ],

            "generateCookieValidationKey": [

                "config/web.php"

            ]

        },

        "asset-installer-paths": {

            "npm-asset-library": "vendor/npm",

            "bower-asset-library": "vendor/bower"

        }

    }

} 

require-dev możesz odpuścić.

A z require: swiftmailer jeśli nie wysyłasz poczty i bootstrap jeśli pogrzebiesz w plikach i wyrzucisz korzystanie z BootstrapAsset.

Udało się zmniejszyć aplikacje do 10 MB. Dzięki.