GreekCMS - Blazing Fast - PHP 7 - PropelORM

Status
Not open for further replies.

Seriosk

Programmer;
Oct 29, 2016
256
105
GreekCMS

Hello. I am here again with a brand new development. I am here today to announce a new HabboCMS in the development which I am working on. I know many of the users here wont even use it as they like RevCMS and the simplicity of it, how it works, and how easy it is to alter things. Also, many people on this forum have got used to how it works after using it for years on end, but I feel like my CMS can bring that Simplicity to the community, with all the features that you need.

What happens when you want to extend the functionality of RevCMS? You have to go into the core, add it, and sometimes you don't even know where to put if if your an inexperienced developer, or how to even code it. GreekCMS brings you all the features you could ever want, with blazing fast speed.

Tell me more about the Blazing Speed?
It uses Propel, a blazing fast PHP ORM, in User-Friendly terms, its a database library that's super fast, and super flexible if you ever need to change it. It also uses Twig Template Engine which is known to be the fastest, and FastRoute, clue is in the name.

Why should I even be interested, whats different?
  • Dependency Injection
  • Organised Structure
  • Goodbye Global

Your library's are known to be the most advanced, how are you bringing simplicity?
The library's will all have what I like to call 'Controllers' which are a way of easily removing, extending and modifying existing functionality with advanced library's, don't take it as an actual 'Controller', it isn't a controller. I could simply create a Framework, throw it out there and tell you to use it, but I know that wouldn't benefit most users on this forum. With Greek, developers AND new developers can use, modify, extend, and easily use this CMS.

Code Area
Index.php:
Code:
<?php
declare(strict_types = 1);
require __DIR__ . '/../src/Bootstrap.php';

Bootstrap.php:
Code:
<?php
declare(strict_types = 1);

namespace Greek;

require __DIR__ . '/../vendor/autoload.php';

error_reporting(E_ALL);

$environment = 'development';

$whoops = new \Whoops\Run;

if ($environment !== 'production') {
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
} else {
    $whoops->pushHandler(function($e){
        echo 'Todo: Friendly error page and send an email to the developer';
    });
}

$whoops->register();

$injector = include('Dependencies.php');

$request = $injector->make('Http\HttpRequest');
$response = $injector->make('Http\HttpResponse');

foreach ($response->getHeaders() as $header) {
    header($header, false);
}

$routeDefinitionCallback = function (\FastRoute\RouteCollector $r) {
    $routes = include('Routes.php');
    foreach ($routes as $route) {
        $r->addRoute($route[0], $route[1], $route[2]);
    }
};

$dispatcher = \FastRoute\simpleDispatcher($routeDefinitionCallback);

$routeInfo = $dispatcher->dispatch($request->getMethod(), $request->getPath());
switch ($routeInfo[0]) {
    case \FastRoute\Dispatcher::NOT_FOUND:
        $response->setContent('404 - Page not found');
        $response->setStatusCode(404);
        break;
    case \FastRoute\Dispatcher::METHOD_NOT_ALLOWED:
        $response->setContent('405 - Method not allowed');
        $response->setStatusCode(405);
        break;
    case \FastRoute\Dispatcher::FOUND:
        $className = $routeInfo[1][0];
        $method = $routeInfo[1][1];
        $vars = $routeInfo[2];

        $class = $injector->make($className);
        $class->$method($vars);
        break;
}

foreach ($response->getHeaders() as $header) {
    header($header, false);
}

echo $response->getContent();

Composer.Json:
Code:
{
    "name": "Greek CMS",
    "description": "A simple content management system for Habbo.",
    "keywords": ["Your keyword", "Another keyword"],
    "license": "MIT",
    "authors": [
        {
            "name": "Seriosk",
            "email": "[email protected]",
            "role": "Creator / Main Developer"
        }
    ],
    "require": {
        "php": ">=7.0.0",
        "filp/whoops": "~2.1",
        "patricklouys/http": "~1.4",
        "nikic/fast-route": "^1.2",
        "rdlowrey/auryn": "^1.4",
        "twig/twig": "^2.2",
        "propel/propel": "~2.0@dev"
    },
    "autoload": {
        "psr-4": {
            "Greek\\": "src/"
        }
    }
}

Dependencies.php:
Code:
<?php
declare(strict_types = 1);

$injector = new \Auryn\Injector;

$injector->alias('Http\Request', 'Http\HttpRequest');
$injector->share('Http\HttpRequest');
$injector->define('Http\HttpRequest', [
    ':get' => $_GET,
    ':post' => $_POST,
    ':cookies' => $_COOKIE,
    ':files' => $_FILES,
    ':server' => $_SERVER,
]);

$injector->alias('Http\Response', 'Http\HttpResponse');
$injector->share('Http\HttpResponse');

$injector->alias('Greek\Template\Renderer', 'Greek\Template\TwigRenderer');
$injector->alias('Greek\Template\FrontendRenderer', 'Greek\Template\FrontendTwigRenderer');

$injector->delegate('Twig_Environment', function () use ($injector) {
    $loader = new Twig_Loader_Filesystem(dirname(__DIR__) . '/templates');
    $twig = new Twig_Environment($loader);
    return $twig;
});

$injector->define('Greek\Page\FilePageReader', [
    ':pageFolder' => __DIR__ . '/../pages',
]);

$injector->alias('Greek\Page\PageReader', 'Greek\Page\FilePageReader');
$injector->share('Greek\Page\FilePageReader');

$injector->alias('Greek\Menu\MenuReader', 'Greek\Menu\ArrayMenuReader');
$injector->share('Greek\Menu\ArrayMenuReader');
return $injector;

Routes:
Code:
<?php
declare(strict_types = 1);

return [
    ['GET', '/hello', ['Greek\Handlers\HomeController', 'show']],
    ['GET', '/{slug}', ['Greek\Handlers\PageController', 'show']],
];

Once more has been done, I'll implement MonoLog and other things.
 
Last edited:

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
I wouldn't dare go as far to call it super fast or even repeat the terminology fast when it's using Composer for autoloading - which has been known to be super slow in a lot of cases.

Regardless, it is still nice to see people expanding on PHP and looking to create different things with it. Although none of this is super-anything let alone advanced, it's different to Rev and it's on PHP 7 which are two great factors for people to use this in the future. Also the addition of an ORM makes it all the better.

Good luck
 

Seriosk

Programmer;
Oct 29, 2016
256
105
I wouldn't dare go as far to call it super fast or even repeat the terminology fast when it's using Composer for autoloading - which has been known to be super slow in a lot of cases.

Regardless, it is still nice to see people expanding on PHP and looking to create different things with it. Although none of this is super-anything let alone advanced, it's different to Rev and it's on PHP 7 which are two great factors for people to use this in the future. Also the addition of an ORM makes it all the better.

Good luck
Just wondering, when did I call it super advanced? And the components I mentioned are super fast compared to what other content management systems use.

About composer apparently being 'slow', I would love to see some sources on this, from what I know is composer.json is slow on certain dependencies and badly formatted composer.json files? Overall I have never heard anything bad about composer, but that doesn't mean there isn't anything bad about the use of it.

Thanks.
 

Seriosk

Programmer;
Oct 29, 2016
256
105
What EMU's are compatible?
PlusEMU will definitely be supported, but I can pretty much add any database structure compatibility by just making a new scheme. I have added a small part of my current scheme below to give you a feel.

Code:
<table name="users" idMethod="native" phpName="Users" namespace="Greek/Database/Models">
    <column name="id" phpName="Id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
    <column name="username" phpName="Username" type="VARCHAR" size="125" required="true"/>
    <column name="password" phpName="Password" type="VARCHAR" size="255"/>
    <column name="mail" phpName="Mail" type="VARCHAR" size="255" defaultValue="[email protected]"/>
    <column name="auth_ticket" phpName="AuthTicket" type="VARCHAR" size="120" primaryKey="true" required="true" defaultValue=""/>
    <column name="rank" phpName="Rank" type="INTEGER" size="1" sqlType="int(1) unsigned" defaultValue="1"/>
    <column name="rank_vip" phpName="RankVip" type="INTEGER" size="1" defaultValue="3"/>
    <column name="credits" phpName="Credits" type="INTEGER" defaultValue="80"/>
    <column name="vip_points" phpName="VipPoints" type="INTEGER" defaultValue="0"/>
    <column name="activity_points" phpName="ActivityPoints" type="INTEGER" defaultValue="100"/>
    <column name="look" phpName="Look" type="CHAR" size="255" defaultValue="ch-255-82.hd-180-8.lg-275-1408.hr-165-39"/>
    <column name="gender" phpName="Gender" type="CHAR" sqlType="enum('M','F')" defaultValue="M"/>
    <column name="motto" phpName="Motto" type="CHAR" size="50" defaultValue="Citizen"/>
    <column name="account_created" phpName="AccountCreated" type="CHAR" size="12" defaultValue="0"/>
    <column name="last_online" phpName="LastOnline" type="INTEGER" defaultValue="0"/>
    <column name="online" phpName="Online" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="ip_last" phpName="IpLast" type="VARCHAR" size="45" defaultValue=""/>
    <column name="ip_reg" phpName="IpReg" type="VARCHAR" size="45"/>
    <column name="home_room" phpName="HomeRoom" type="INTEGER" size="10" defaultValue="0"/>
    <column name="is_muted" phpName="IsMuted" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="block_newfriends" phpName="BlockNewfriends" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="hide_online" phpName="HideOnline" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="hide_inroom" phpName="HideInroom" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="vip" phpName="Vip" type="CHAR" sqlType="enum('0','1')" defaultValue="1"/>
    <column name="volume" phpName="Volume" type="VARCHAR" size="15" defaultValue="100,100,100"/>
    <column name="last_change" phpName="LastChange" type="INTEGER" size="20" defaultValue="0"/>
    <column name="machine_id" phpName="MachineId" type="VARCHAR" size="125" defaultValue=""/>
    <column name="focus_preference" phpName="FocusPreference" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="chat_preference" phpName="ChatPreference" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="pets_muted" phpName="PetsMuted" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="bots_muted" phpName="BotsMuted" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="advertising_report_blocked" phpName="AdvertisingReportBlocked" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="gotw_points" phpName="GotwPoints" type="INTEGER" defaultValue="0"/>
    <column name="ignore_invites" phpName="IgnoreInvites" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="time_muted" phpName="TimeMuted" type="DOUBLE" defaultValue="0"/>
    <column name="allow_gifts" phpName="AllowGifts" type="CHAR" sqlType="enum('0','1')" defaultValue="1"/>
    <column name="trading_locked" phpName="TradingLocked" type="DOUBLE" defaultValue="0"/>
    <column name="friend_bar_state" phpName="FriendBarState" type="CHAR" sqlType="enum('0','1')" required="true" defaultValue="1"/>
    <column name="disable_forced_effects" phpName="DisableForcedEffects" type="CHAR" sqlType="enum('0','1')" required="true" defaultValue="0"/>
    <column name="allow_mimic" phpName="AllowMimic" type="CHAR" sqlType="enum('1','0')" required="true" defaultValue="1"/>
    <column name="updated_at" phpName="UpdatedAt" type="TIMESTAMP"/>
    <column name="created_at" phpName="CreatedAt" type="TIMESTAMP"/>
    <column name="remember_token" phpName="RememberToken" type="VARCHAR" size="255" defaultValue=""/>
    <column name="last_admin_login" phpName="LastAdminLogin" type="VARCHAR" size="255" defaultValue=""/>
    <index name="rank">
      <index-column name="rank"/>
    </index>
    <index name="ip_last">
      <index-column name="ip_last"/>
    </index>
    <index name="ip_reg">
      <index-column name="ip_reg"/>
    </index>
    <index name="credits">
      <index-column name="credits"/>
    </index>
    <index name="activity_points">
      <index-column name="activity_points"/>
    </index>
    <index name="online">
      <index-column name="online"/>
    </index>
    <index name="mail">
      <index-column name="mail"/>
    </index>
    <index name="machine_id">
      <index-column name="machine_id"/>
    </index>
    <index name="auth_ticket">
      <index-column name="auth_ticket"/>
    </index>
    <index name="last_online">
      <index-column name="last_online"/>
    </index>
    <index name="home_room">
      <index-column name="home_room"/>
    </index>
    <index name="rank_vip">
      <index-column name="rank_vip"/>
    </index>
    <index name="messenger">
      <index-column name="id"/>
      <index-column name="username"/>
      <index-column name="look"/>
      <index-column name="motto"/>
      <index-column name="last_online"/>
    </index>
    <unique name="id">
      <unique-column name="id"/>
    </unique>
    <unique name="username">
      <unique-column name="username"/>
    </unique>
    <vendor type="mysql">
      <parameter name="Engine" value="InnoDB"/>
    </vendor>
  </table>
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
Just wondering, when did I call it super advanced?
Your library's are known to be the most advanced, how are you bringing simplicity?
Composer is known for being easy to use, and for handling dependencies well. It is not known for being fast. Format has nothing to do with it, because Composer will not work with a badly formatted file regardless, it's based on the amount of dependencies you use and what you add to your auto-loading schema.

the components I mentioned are super fast
The components you use were not based on speed, it was based on the name and sounding cool. Just because it sounded cool doesn't make it good.
Propel is slower than what I normally use (Eloquent), then again this was on PHP 7 so it could be around 40ms now, (keep in mind it would still be slower)

Regardless
Moral is to not bullshit people, or falsely advertise. Your right that this is different than it's competitors. Go off of that, not off of a false sense of speed
 
Last edited:

Zenuyasha

</Dev>
Dec 5, 2016
170
48
PlusEMU will definitely be supported, but I can pretty much add any database structure compatibility by just making a new scheme. I have added a small part of my current scheme below to give you a feel.

Code:
<table name="users" idMethod="native" phpName="Users" namespace="Greek/Database/Models">
    <column name="id" phpName="Id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
    <column name="username" phpName="Username" type="VARCHAR" size="125" required="true"/>
    <column name="password" phpName="Password" type="VARCHAR" size="255"/>
    <column name="mail" phpName="Mail" type="VARCHAR" size="255" defaultValue="[email protected]"/>
    <column name="auth_ticket" phpName="AuthTicket" type="VARCHAR" size="120" primaryKey="true" required="true" defaultValue=""/>
    <column name="rank" phpName="Rank" type="INTEGER" size="1" sqlType="int(1) unsigned" defaultValue="1"/>
    <column name="rank_vip" phpName="RankVip" type="INTEGER" size="1" defaultValue="3"/>
    <column name="credits" phpName="Credits" type="INTEGER" defaultValue="80"/>
    <column name="vip_points" phpName="VipPoints" type="INTEGER" defaultValue="0"/>
    <column name="activity_points" phpName="ActivityPoints" type="INTEGER" defaultValue="100"/>
    <column name="look" phpName="Look" type="CHAR" size="255" defaultValue="ch-255-82.hd-180-8.lg-275-1408.hr-165-39"/>
    <column name="gender" phpName="Gender" type="CHAR" sqlType="enum('M','F')" defaultValue="M"/>
    <column name="motto" phpName="Motto" type="CHAR" size="50" defaultValue="Citizen"/>
    <column name="account_created" phpName="AccountCreated" type="CHAR" size="12" defaultValue="0"/>
    <column name="last_online" phpName="LastOnline" type="INTEGER" defaultValue="0"/>
    <column name="online" phpName="Online" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="ip_last" phpName="IpLast" type="VARCHAR" size="45" defaultValue=""/>
    <column name="ip_reg" phpName="IpReg" type="VARCHAR" size="45"/>
    <column name="home_room" phpName="HomeRoom" type="INTEGER" size="10" defaultValue="0"/>
    <column name="is_muted" phpName="IsMuted" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="block_newfriends" phpName="BlockNewfriends" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="hide_online" phpName="HideOnline" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="hide_inroom" phpName="HideInroom" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="vip" phpName="Vip" type="CHAR" sqlType="enum('0','1')" defaultValue="1"/>
    <column name="volume" phpName="Volume" type="VARCHAR" size="15" defaultValue="100,100,100"/>
    <column name="last_change" phpName="LastChange" type="INTEGER" size="20" defaultValue="0"/>
    <column name="machine_id" phpName="MachineId" type="VARCHAR" size="125" defaultValue=""/>
    <column name="focus_preference" phpName="FocusPreference" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="chat_preference" phpName="ChatPreference" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="pets_muted" phpName="PetsMuted" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="bots_muted" phpName="BotsMuted" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="advertising_report_blocked" phpName="AdvertisingReportBlocked" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="gotw_points" phpName="GotwPoints" type="INTEGER" defaultValue="0"/>
    <column name="ignore_invites" phpName="IgnoreInvites" type="CHAR" sqlType="enum('0','1')" defaultValue="0"/>
    <column name="time_muted" phpName="TimeMuted" type="DOUBLE" defaultValue="0"/>
    <column name="allow_gifts" phpName="AllowGifts" type="CHAR" sqlType="enum('0','1')" defaultValue="1"/>
    <column name="trading_locked" phpName="TradingLocked" type="DOUBLE" defaultValue="0"/>
    <column name="friend_bar_state" phpName="FriendBarState" type="CHAR" sqlType="enum('0','1')" required="true" defaultValue="1"/>
    <column name="disable_forced_effects" phpName="DisableForcedEffects" type="CHAR" sqlType="enum('0','1')" required="true" defaultValue="0"/>
    <column name="allow_mimic" phpName="AllowMimic" type="CHAR" sqlType="enum('1','0')" required="true" defaultValue="1"/>
    <column name="updated_at" phpName="UpdatedAt" type="TIMESTAMP"/>
    <column name="created_at" phpName="CreatedAt" type="TIMESTAMP"/>
    <column name="remember_token" phpName="RememberToken" type="VARCHAR" size="255" defaultValue=""/>
    <column name="last_admin_login" phpName="LastAdminLogin" type="VARCHAR" size="255" defaultValue=""/>
    <index name="rank">
      <index-column name="rank"/>
    </index>
    <index name="ip_last">
      <index-column name="ip_last"/>
    </index>
    <index name="ip_reg">
      <index-column name="ip_reg"/>
    </index>
    <index name="credits">
      <index-column name="credits"/>
    </index>
    <index name="activity_points">
      <index-column name="activity_points"/>
    </index>
    <index name="online">
      <index-column name="online"/>
    </index>
    <index name="mail">
      <index-column name="mail"/>
    </index>
    <index name="machine_id">
      <index-column name="machine_id"/>
    </index>
    <index name="auth_ticket">
      <index-column name="auth_ticket"/>
    </index>
    <index name="last_online">
      <index-column name="last_online"/>
    </index>
    <index name="home_room">
      <index-column name="home_room"/>
    </index>
    <index name="rank_vip">
      <index-column name="rank_vip"/>
    </index>
    <index name="messenger">
      <index-column name="id"/>
      <index-column name="username"/>
      <index-column name="look"/>
      <index-column name="motto"/>
      <index-column name="last_online"/>
    </index>
    <unique name="id">
      <unique-column name="id"/>
    </unique>
    <unique name="username">
      <unique-column name="username"/>
    </unique>
    <vendor type="mysql">
      <parameter name="Engine" value="InnoDB"/>
    </vendor>
  </table>
Beautiful gonna wait for this then :up:
 

Seriosk

Programmer;
Oct 29, 2016
256
105
Composer is known for being easy to use, and for handling dependencies well. It is not known for being fast. Format has nothing to do with it, because Composer will not work with a badly formatted file regardless, it's based on the amount of dependencies you use and what you add to your auto-loading schema.


The components you use were not based on speed, it was based on the name and sounding cool. Just because it sounded cool doesn't make it good.
Propel is slower than what I normally use (Eloquent), then again this was on PHP 7 so it could be around 40ms now, (keep in mind it would still be slower)

Regardless
Moral is to not bullshit people, or falsely advertise. Your right that this is different than it's competitors. Go off of that, not off of a false sense of speed
My rendering time says different. I guess you'll have to wait till its released to actually see the benchmarks.
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
My rendering time says different. I guess you'll have to wait till its released to actually see the benchmarks.
That's cool you feel this way, but the professionals have pointed out what the actual facts are. An amateur thinking by using an extremely bulky system all throughout, but pulls through on a single rps is considerably fast, is laughable.

Do some stress testing later on, or use an actual benchmarking tool before using key words like fast, advanced, etc. It's a website loaded with dependencies, not much to it. You even used the most overused ones (Twig, etc)

Not trying to slate, just saying to calm the language some and keep to development progress
 

MayoMayn

BestDev
Oct 18, 2016
1,423
683
To be honest, your back-end looks a little sketchy.
I don't really like the way you're handling routes.
But all in all, you'd better off using an existing framework when I'm looking at the packages you're already using:
Anyway, good luck with this!
 

Seriosk

Programmer;
Oct 29, 2016
256
105
To be honest, your back-end looks a little sketchy.
I don't really like the way you're handling routes.
But all in all, you'd better off using an existing framework when I'm looking at the packages you're already using:
Anyway, good luck with this!
Frameworks suck, even the creator of PHP said so. They usually just contain feature rich features that are hardly used, and especially won't be used for a simple HabboCMS. I did consider using Symfony but it really isn't needed for such a small PHP project.
 

MayoMayn

BestDev
Oct 18, 2016
1,423
683
Frameworks suck, even the creator of PHP said so. They usually just contain feature rich features that are hardly used, and especially won't be used for a simple HabboCMS. I did consider using Symfony but it really isn't needed for such a small PHP project.
Yeah true, but yet you're filling the CMS with components used in a framework, which in the end, would make more sense to already use an existing framework.
Code:
"filp/whoops": "~2.1",
"patricklouys/http": "~1.4",
"nikic/fast-route": "^1.2",
"rdlowrey/auryn": "^1.4",
"twig/twig": "^2.2",
"propel/propel": "~2.0@dev"
 

Seriosk

Programmer;
Oct 29, 2016
256
105
Yeah true, but yet you're filling the CMS with components used in a framework, which in the end, would make more sense to already use an existing framework.
Code:
"filp/whoops": "~2.1",
"patricklouys/http": "~1.4",
"nikic/fast-route": "^1.2",
"rdlowrey/auryn": "^1.4",
"twig/twig": "^2.2",
"propel/propel": "~2.0@dev"
Frameworks come with overhead, I chose what was best for the project. Using a framework is cool yes and its all there for you to use, but with a Framework I can almost guarantee 90% of the features there wont even be needed. Using your own is also easier when developing because you understand the source for (at least for me it is).

Framework really isn't needed in this kind of situation, nor do I intend on using one.
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
Frameworks come with overhead, I chose what was best for the project. Using a framework is cool yes and its all there for you to use, but with a Framework I can almost guarantee 90% of the features there wont even be needed. Using your own is also easier when developing because you understand the source for (at least for me it is).

Framework really isn't needed in this kind of situation, nor do I intend on using one.
If you knew how to configure frameworks, you could make that 90 percent of unused features become 0.

When I'm developing with Laravel, Cake, or any other heavy framework it's important to configure and enable what is needed.

Not to mention, I find myself using most of the framework 80% of the time
 

MayoMayn

BestDev
Oct 18, 2016
1,423
683
If you knew how to configure frameworks, you could make that 90 percent of unused features become 0.

When I'm developing with Laravel, Cake, or any other heavy framework it's important to configure and enable what is needed.

Not to mention, I find myself using most of the framework 80% of the time
Exactly, you can easily disable features to minimize dependency loading time amongst other stuff, especially in Laravel.
To be honest, he would be better off using the finished version of my framework.
 

Examed

Я весь высший лидер из вас всех
Aug 7, 2014
352
95
Well good luck I'd like to see this released, but I hope you're not one of those habbotards who never finish a project.
;)
 

Seriosk

Programmer;
Oct 29, 2016
256
105
To be honest, he would be better off using the finished version of my framework.
No, because I can optimize my CMS to be better (performance wise) than your Framework.

If you knew how to configure frameworks, you could make that 90 percent of unused features become 0.

When I'm developing with Laravel, Cake, or any other heavy framework it's important to configure and enable what is needed.

Not to mention, I find myself using most of the framework 80% of the time
Doing this as an educational purpose too, so I want to actually learn more than just how to use / optimize a framework.

Well good luck I'd like to see this released, but I hope you're not one of those habbotards who never finish a project.
;)
Hopefully not, but I never make promises on finishing things I can't guarantee
 

MayoMayn

BestDev
Oct 18, 2016
1,423
683
No, because I can optimize my CMS to be better (performance wise) than your Framework.


Doing this as an educational purpose too, so I want to actually learn more than just how to use / optimize a framework.


Hopefully not, but I never make promises on finishing things I can't guarantee
Argh mate, already at first it's slower.
You're initializing your classes before they're even used. Aswell as an IoC and PropelORM is slow, it's not even going to be close. You can't optimize libraries you haven't coded to perform better, unless there's configuration to do so, which I highly doubt there is.

Sent from my SM-G928F using Tapatalk
 

Seriosk

Programmer;
Oct 29, 2016
256
105
Argh mate, already at first it's slower.
You're initializing your classes before they're even used. Aswell as an IoC and PropelORM is slow, it's not even going to be close. You can't optimize libraries you haven't coded to perform better, unless there's configuration to do so, which I highly doubt there is.

Sent from my SM-G928F using Tapatalk
Your last post is loaded with uncertainty, gossipy tidbits and things you believe about my venture, can't generally observe anything set in stone with your remarks, and I am almost certain your framework isn't vastly improved, if better by any means, excluding the countless components that are excluded.
 

MayoMayn

BestDev
Oct 18, 2016
1,423
683
Your last post is loaded with uncertainty, gossipy tidbits and things you believe about my venture, can't generally observe anything set in stone with your remarks, and I am almost certain your framework isn't vastly improved, if better by any means, excluding the countless components that are excluded.
So? My ORM can easily be improved. I'd like to see you code a whole framework from scratch. Only half the router and the template engine is not by me. Even though the ORM includes unnecessary coding, it's still faster than PropelORM for simple purposes as inserting, updating, fetching and so on. Anyway, have you even read the README.md for the IoC? Half the purposes you're using it for is just as a service locator, which they clearly pointed out is wrong.

Sent from my SM-G928F using Tapatalk
 
Status
Not open for further replies.

Users who are viewing this thread

Top