Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - mruz

Strony: [1] 2 3 4
1
Development / Ice 1.3.0
« dnia: Kwiecień 03, 2018, 20:13:47 »
Wersja 1.3.0 za wsparciem do PHP 7.2 została wydana. Z nowych rzeczy to w Modelach możliwość ustawienia usługi z której db model korzysta (jeden model może pracować na MySQL, a drugi na MongoDB). Porzucono wsparcie do PHP 5.4 i legacy mongo driver.

Dodałem też DLLe dla Windows Pobierz Ice Framework.

2
Development / iceframework.org
« dnia: Wrzesień 05, 2017, 01:31:58 »
Witam,

Odświeżyłem trochę stronę domową iceframework.org
W wolnym czasie postaram się uzupełnić trochę dokumentację  ::)

PS.
Udoskonalam i upraszczam też bazową aplikację.

3
Development / Ice 1.2.0
« dnia: Sierpień 29, 2016, 14:44:20 »
Wersja 1.2.0 została wydana, dodano w niej driver mongodb (mongo is deprecated on php7), a także poprawkę do walidacji i url.

Należy pamiętać, że jeśli użyżywaliśmy base, to typ mongodb w configu https://github.com/ice/base/blob/b1d96e64d9bbde9141d23a796118fd914f633af6/app/cfg/config.ini#L14
 ustawi nam nowy driver.

CHANGELOG

4
Development / Ice 1.1.0
« dnia: Styczeń 27, 2016, 12:49:00 »
Wersja 1.1.0 została wydana, przynosi ona przede wszystkim auto-resolving:

<?php
namespace App\Modules\Frontend\Controllers;

use Ice\Mvc\Controller;
use App\Services\UserService;

class UserController extends Controller
{

    protected $users;

    public function __construct(UserService $users)
    {
        $this->users = $users;
    }

    public function indexAction()
    {
        $user = $this->users->loadOne(['username' => 'admin']);
    }
}
<?php
namespace App\Services;

use App\Models\Users;
use Ice\Mvc\Service;

class UserService extends Service
{

    public function __construct(Users $users)
    {
        $this->setModel($users);
    }
}

Inny przykład:
<?php
class Foo {

protected $bar;
protected $baz;

public function __construct(Bar $bar, Baz $baz)
{
$this->bar = $bar;
$this->baz = $baz;
}
}

class Bar {}

class Baz {

protected $qux;

public function __construct(Qux $qux)
{
$this->qux = $qux;
}
}

class Qux {

protected $norf;

public function __construct(Norf $norf)
{
$this->norf = $norf;
}
}

class Norf {}

$foo = new Foo(new Bar, new Baz(new Qux(new Norf)));
// The same by auto-resolving:
$di = new Ice\Di();
$foo = $di->build('Foo');

Komponenty są też domyślnie przypisane do usług, więc w bootstrapie podajemy tylko to co chcemy ustawić, np. dla aplikacji hello:
namespace App;

// Create a dependency injector container
$di = new \Ice\Di();

// Register App namespace for App\Controller, App\Model, App\Library, etc.
$di->loader
    ->addNamespace(__NAMESPACE__, __DIR__)
    ->register();

// Set some service's settings
$di->dispatcher
    ->setNamespace(__NAMESPACE__);

$di->router
    ->setRoutes([
        ['GET', '/{controller:[a-z]+}/{action:[a-z]+[/]?}'],
        ['GET', '/{controller:[a-z]+[/]?}'],
        ['GET', ''],
    ]);

$di->view
    ->setViewsDir(__DIR__ . '/View/');

// Create and return a MVC application
return new \Ice\Mvc\App($di);

5
Dla początkujących / Paginacja
« dnia: Grudzień 11, 2015, 11:55:13 »
Przykłady i opis paginacji dodałem do dokumentacji http://www.iceframework.org/doc/component/pagination.

6
Development / Ice na Windows
« dnia: Listopad 11, 2015, 15:27:10 »
Czy przydatne byłyby biblioteki z Ice dla Windows?

Z racji, że na co dzień nie pracuję na Windows i nawet nie mam zainstalowanego, musiałbym je robić na wirtualnej maszynie i nie bardzo mam na to ochotę..
Jeśli komuś biblioteki z frameworkiem byłyby przydatne, to mógłby zostać opiekunem, budować je dla nowych wersji ice (wystarczy PHP 5.6 64 bit) i podsyłać dll'e postępując wg.

1. https://wiki.php.net/internals/windows/stepbystepbuild
2. http://phalconphp-internals-documentation.readthedocs.org/en/latest/reference/compilation.html
3. http://szdredd.blogspot.cz/2013/11/how-to-setup-phalcon-framework-under.html

7
Development / Sleet template engine
« dnia: Listopad 11, 2015, 14:34:16 »
Jeśli ktoś używa Sublime Text / TextMate to dodałem proste kolorowanie składni https://github.com/ice/sleet.

Składnia jest podobna do Twig'a, więci dla NetBeans:
Options > Miscellaneous > Files
Można dodać nowe rozszerzenie sleet i przypisać do TWIG.

8
Dla początkujących / Walidacja
« dnia: Listopad 10, 2015, 10:01:33 »
Przykłady i opis walidacji dodałem do dokumentacji http://www.iceframework.org/doc/component/validation.

9
Development / MVC i jego rozszerzenia
« dnia: Listopad 06, 2015, 12:20:09 »
MVC (Model-View-Controller) - pol. Model-Widok-Kontroler to znany wzorzec:
controllers/
models/
views/

Możemy także spotkać HMVC (Hierarchical) rozszerzający o moduły:
modules/module1/controllers/
modules/module1/models/
modules/module1/views/

modules/module2/controllers/
modules/module2/models/
modules/module2/views/

Jeżeli chcemy, możemy również tworzyć odwołania z poziomu kontrolera do innych kontrolerów (za pomocą jednego żądania HTTP), co przez niektórych jest uważane za niedopuszczalne.

A także MVCS (Service), gdzie mamy dodatkowo warstwę Usług, które pośredniczą między komunikacją Kontrolera z Modelem.
controllers/
models/
services/
views/

Pomysł MVCS jest po to, aby mieć warstwę Obsługi pomiędzy kontrolerem i modelem i upakować w niej całą logikę biznesową, która normalnie byłaby w kontrolerze. W ten sposób, kontrolery są po to, aby przekazywać i kontrolować żądania. Można wywołać usługi w wielu kontrolerach (na przykład na stronie internetowej i w konsoli), bez powielania kodu.

A gdyby tak połączyć wychodzi HMVCS gdzie względem standardowego MVC mamy jeszcze moduły i usługi.
modules/module1/controllers/
modules/module1/models/
modules/module1/views/
modules/module1/services/

modules/module2/controllers/
modules/module2/models/
modules/module2/views/
modules/module2/services/



Ale np. model użytkowników często jest wspólny dla front i backendu (użytkownicy i zarządzanie nimi), tak samo jak usługa komunikacji z nim. W ice/base właśnie wyciągnąłem modele i usługi poza moduły (MSHVC :D):

models/
services/

modules/frontend/controllers/
modules/frontend/views/

modules/backend/controllers/
modules/backend/views/

10
Development / Benchmark
« dnia: Październik 28, 2015, 14:08:19 »
Do dokumentacji dodałem ice benchmark.

Sprzęt
Procesor: i7-4702MQ up to 3.2 GHz 4 rdzenie 8 wątków
Pamięć: 12GB 1600 MHz DDR3
Dysk: SSD 120GB odczyt 540MB/s zapis 480MB/s

Oprogramowanie
System operacyjny: openSUSE Tubmleweed 20151017 64-bit
Kernel: 4.2.1
Serwer www: Nginx 1.8.0
PHP-FPM: 5.6.14
Skrypt: PHP Framework Benchmark

Żądania na sekundę

Użyta pamięć

Czas wykonywania

Dołączonych plików

11
Gotowe rozwiązania / [GIT] Bazowa aplikacja dla Ice
« dnia: Wrzesień 12, 2015, 09:01:08 »
base, to jak sama nazwa wskazuje, to bazowa aplikacja, którą można wykorzystać do szybkiego tworzenia dowolnej aplikacji w ice framework.

Zawarte komponenty:
  • Plik bootstrap dla Aplikacji i Konsoli
  • Plik do łapania błędów
  • Plik z trasami
  • Szablon widoków sleet
  • Zaimplementowane Auth
  • Tłumaczenia
  • Moduły Frontend/Admin/Doc/Shell
  • Możliwość pracy z PDO, MongoDB
  • Biblioteka
    • PHPMailer
    • Parsedown
  • Twitter Bootstrap 4

Działającą bazową aplikację można zobaczyć: mruz.me/base.


Konfiguracja:
1. Użyj auth.sql do stworzenia wymaganych tabel.
2. Ustaw base_uri i inne opcje w pliku /app/cfg/config.ini:

[app]
domain = "example.com"
base_uri = "/"
static_uri = "http://www.example.com/"
admin = "admin@example.com"

Podaj ustawienia do połączenia do bazy danych:
[database]
type     = "mongodb"
host     = "localhost"
port     = 27017
user     = "demo"
password = "demo"
name     = "demo_base"

Zmień domyślne klucze. To jest bardzo ważne ze względów bezpieczeństwa:
[auth]
hash_key = "secret_key"

[crypt]
key = "secret_key"

[cookie]
salt = "secret_key"

Przygotuj aplikację do pierwszego użycia:
cd /path/to/base/private
php index.php --module=shell --handler=prepare --action=chmod


Przykład użycia sleet:
Dostęp do usługi `auth` w widokach:
{% if this.auth.loggedIn() %}
    {{ this.auth.getUser().username }}
{% endif %}

Łatwe tłumaczenie z funkcją `_t()`:
{% set username = this.auth.getUser().username %}
{{ _t('Hello :user', [':user' : username]) }}
{{ _t('Hello %s', [username]) }}

Różne:
{% if this.auth.loggedIn('admin') %}
    {{ _t('Hello :user', [':user' : this.auth.getUser().username]) }}
    {{ link_to(['admin', _t('Admin panel')]) }}
{% endif %}

Używaj klasy w widokach:
{% use App\Models\Users %}

{% set user = Users::findOne(1) %}
{{ user.username }}

Debuguj zmienne:
{{ dump('string', 1, 2.5, true, null, ['key': 'value']) }}

12
Informacje / Phalcon 2.1.0
« dnia: Sierpień 28, 2015, 11:39:13 »
Została wydana wersja 2.1.0 beta 1, Phalcon 2.1.0 beta 1 released. Od serii 2.1.x nie będzie już wspierane PHP 5.3, a rekomendowana wersja to 5.6. Chcący ruszyć do przodu, trzeba było w pewnych komponentach zrezygnować z kompatybilności wstecznej z 1.3.x, np. zrezygnowano z osobnej walidacji modelowej na rzecz Phalcon\Validation (bo walidatory były niepotrzebnie powtórzone). Dla bardziej szczegółowych zmian odsyłam do CHANGELOG.

Aby przetestować, należy skompilować ze źródeł:
git clone https://github.com/phalcon/cphalcon
git checkout 2.1.x
cd cphalcon/ext
sudo ./install

Jeśli mamy zephira:
git clone https://github.com/phalcon/cphalcon
cd cphalcon/
git checkout 2.1.x
zephir build

Będzie to wersja z długim wsparciem LTS (Long Term Support).

13
Development / PHP Framework Benchmark
« dnia: Maj 02, 2015, 08:18:34 »
Jak widać w benchmarku kenjis/php-framework-benchmark Ice framework plasuje się na 2 pozycji tuż za Phalcon'em. Niezły wyniki, biorąc pod uwagę, że nie dokonywano na razie optymalizacji wydajności...

14
Dla początkujących / Instalacja
« dnia: Marzec 12, 2015, 11:45:25 »
Ice jest rozszerzeniem w C, więc musisz pobrać plik binarny dla Twojej platformy lub skompilować z kodu źródłowego. Obecnie przygotowany jest tylko pakiet dla systemu openSUSE: Instalacja na openSUSE.

Instalacja/kompilacja ze źródeł:
git clone https://github.com/ice/framework.git
cd framework/ext/
sudo ./install

Albo przez composer:
composer create-project iceframework/framework --no-dev

Na koniec dodaj rozszerzenie do php.ini i zrestartuj serwer www. Wymagania w readme.

15
Informacje / Problemy z Github
« dnia: Marzec 01, 2015, 11:25:15 »
Po ostatnich atakach spamerów na phalcon/cphalcon zostało tymczasowo wyłączone zgłaszanie nowych issues. W razie problemów można skorzystać z forum.phalconphp.com.

Strony: [1] 2 3 4