sharp icon indicating copy to clipboard operation
sharp copied to clipboard

Install failure....

Open oimken opened this issue 9 years ago • 8 comments

installation is old. not works in laravel 5

there is some small changes in installation:

  • Add "dvlpp/sharp": "2.0.*" to composer.json 's require section; run composer update;
  • Add 'Dvlpp\Sharp\SharpServiceProvider' in app.php providers section.
  • run "php artisan vendor:publish" to publish

I am newbie in laravel , but sharp interes me. would you please tell me more about sharp ?

Is it not depend on database? where did it save the images/files to?

oimken avatar Mar 12 '15 21:03 oimken

Well, you are right, and I'm sorry: I use Sharp a lot for my own projects, but I wasn't able found the time yet to update the doc (which is Laravel 4 specific, as you figured).

The idea of Sharp is to be DB and file system agnostic: Sharp require from the project code to implement some interfaces in repositories, based on what's defined in the config files, and those repositories are responsible of dealing with the posted data.

This said, the tool provide a good help with an Eloquent Model configuration, with the SharpEloquentAutoUpdaterService (which goal is to do all the DB work).

I plan to work on the code (keeping the current API) and the documentation in the coming months, but I'm a the moment way to busy. You are the first asking me help on this project, so here's what we can do: if you have the motivation to dive in with the current donc and the latest code, do it, and send me an email or reply here if you have some issue or question. The project is production-ready (some projects are live at this time).

One final note: prefer, for development, this version in composer.json, because some bug fixes are coming periodically without tag-release:

  • "dvlpp/sharp": "dev-master"

(I will not break the current codebase)

dvlpp avatar Mar 13 '15 08:03 dvlpp

Thanks a lot for your reply!!! I am reading the doc and I got you idea of sharp. It is a amazing tools for small site, such as single page portfolio. I will try my best to read your code to understand how it works! Thank you for you sharing!!

oimken avatar Mar 13 '15 08:03 oimken

I try to follow your doc to set up a demo, but the doc if for laravel 4, there are lots of differences, I stuck on very first step: create the cms config file.....

I already tried to put the config file "sharp.cms.giraffe.php" into "/config", and edit the "config/sharp.php"

"name" => "Sharp Demo", // "auth_service" => '\Quincy\Services\SharpAuth', "cms" => ['giraffe']

and change the file name to test: but I keep receiving the error message:

EntityConfigurationNotFoundException in SharpCmsConfig.php line 59: Category configuration for [] can't be found

would you please help me out? update the doc will be very helpful, or share a little sample that I could figure out how sharp works.

thank you for your kind help.

oimken avatar Mar 13 '15 10:03 oimken

Oh, it changed a lot. There's only one config file (sharp.php). Here's an example:

return [
    "name" => "SharpZoo",
    "auth_service" => false,
//    "auth_service" => '\App\Sharp\SharpAuthentication',
    "languages" => [
        "fr" => "French",
        "en" => "English"
    ],
    "cms" => [
        "africa" => [
            "label" => "African area",

            "entities" => [
                "giraffe" => [
                    "label"   => "Giraffe",
                    "icon"    => "star",
                    "plural"  => "Giraffes",

                    "id_attribute" => "id",

                    "active_state_field" => "alive",

                    "duplicable" => true,

                    "commands" => [
                        "list" => [
                            "export" => [
                                "text" => "Export (CSV)",
                                "type" => "download",
                                "handler" => '\App\Sharp\Giraffe\ExportCsvCommand',
                            ]
                        ],
                        "entity" => [
                            "birthday" => [
                                "text" => "Add one year",
                                "type" => "reload",
                                "handler" => '\App\Sharp\Giraffe\BirthdayCommand'
                            ],
                            "view" => [
                                "text" => "Preview",
                                "type" => "view",
                                "handler" => '\App\Sharp\Giraffe\PreviewCommand',
                                "view" => "sharp_previews/giraffe"
                            ]
                        ]
                    ],

                    // List columns
                    "list_template" => [
                        "columns" => [
                            "picture" => [
                                "width" => 1,
                                "renderer" => 'thumbnail:100x100'
                            ],
                            "name" => [
                                "header"   => "Name",
                                "sortable" => true,
                                "width" => 6
                            ],
                            "age" => [
                                "header"   => "Age",
                                "sortable" => true,
                                "width" => 2
                            ],
                            "height" => [
                                "header"   => "Height",
                                "width" => 1,
                                "renderer" => '\App\Sharp\Giraffe\HeightColumnsRenderer'
                            ]
                        ],

                        "paginate" => 10,
                        "reorderable" => false,
                        "sublist" => true,
                        "searchable" => true
                    ],

                    // Model
                    "repository" => '\App\Sharp\Giraffe\Repository',
                    "validator" => '\App\Sharp\Giraffe\Validator',

                    // Fields
                    "form_fields" => [
                        "name" => [
                            "label" => "Name",
                            "type" => "text"
                        ],

                        "picture" => [
                            "label" => "Picture (JPG)",
                            "type" => "file",
                            "file_filter" => "jpg,jpeg",
                            "file_filter_alert" => "JPG only",
                            "thumbnail" => "200x100"
                        ],

                        "zookeeper_id" => [
                            "label" => "Zoo keeper",
                            "type" => "ref",
                            "repository" => '\App\Sharp\Zookeeper\Repository'
                        ],

                        "desc" => [
                            "label" => "Description",
                            "type" => "markdown",
                            "toolbar" => "BI QUO LP F"
                        ],

                        "age" => [
                            "label" => "Age",
                            "type" => "text",
                            "attributes" => [
                                "placeholder" => "In years"
                            ],
                            "field_width" => 6
                        ],

                        "height" => [
                            "label" => "Height",
                            "type" => "text",
                            "attributes" => [
                                "placeholder" => "In cm"
                            ],
                            "field_width" => 6
                        ],

                        "particularities" => [
                            "label" => "Physical particularities",
                            "type" => "pivot",
                            "addable" => true,
                            "sortable" => true,
                            "order_attribute" => "order",
                            "create_attribute" => "name",
                            "repository" => '\App\Sharp\Particularity\Repository'
                        ],

                        "photos" => [
                            "label" => "Photos",
                            "type" => "list",
                            "sortable" => true,
                            "addable" => true,
                            "removable" => true,
                            "add_button_text" => "Add a photo",
                            "item_id_attribute" => "id",
                            "item" => [
                                "file" => [
                                    "type" => "file",
                                    "file_type" => "jpg,jpeg,png,gif",
                                    "thumbnail" => "0x100"
                                ],
                                "legend" => [
                                    "type" => "markdown",
                                    "height" => 80,
                                    "toolbar" => "BIUL"
                                ],
                                "tags" => [
                                    "label" => "Tags",
                                    "type" => "pivot",
                                    "addable" => true,
                                    "create_attribute" => "text",
                                    "repository" => '\App\Sharp\Photo\PhotoTagRepository'
                                ],
                            ]
                        ],

                        "card~number" => [
                            "label" => "Card number",
                            "type" => "text"
                        ],
                        "card~origin" => [
                            "label" => "Origin",
                            "type" => "choose",
                            "values" => [
                                "0" => "Unknown",
                                "1" => "Other Zoo",
                                "2" => "Wild life"
                            ],
                            "field_width"=>6
                        ],
                        "card~origin_zoo" => [
                            "label" => "Which one?",
                            "type" => "text",
                            "conditional_display" => 'card~origin:1',
                            "field_width"=>6
                        ],
                        "card~origin_country" => [
                            "label" => "From which country?",
                            "type" => "text",
                            "conditional_display" => 'card~origin:2',
                            "field_width"=>6
                        ],

                        "card-label" => [
                            "type"=>"label",
                            "format"=>"BelongsTo Relation"
                        ],

                        /*"show~title" => [
                            "label" => "Show title",
                            "type" => "text"
                        ],
                        "show~desc" => [
                            "label" => "Description",
                            "type" => "textarea"
                        ],
                        "show~date" => [
                            "label" => "Date of the show",
                            "type" => "date",
                            "has_time" => true
                        ],*/
                        "show-label" => [
                            "type"=>"label",
                            "format"=>"OneToOne Relation"
                        ],

                        "shows" => [
                            "label" => "Shows",
                            "type" => "embed_list",
                            "entity_category" => "africa",
                            "entity" => "show",
                            "renderer" => '\App\Sharp\Giraffe\Show\EmbedRenderer',
                            "sortable" => true,
                            "addable" => true,
                            "removable" => true,
                            "add_button_text" => "Add a show",
                            "item_id_attribute" => "id",
                            "order_attribute" => "order"
                        ],

                    ], // End of form fields

                    "form_layout" => [
                        "tab1" => [
                            "tab" => "Animal",
                            "col1" => [
                                "name",
                                "picture",
                                "zookeeper_id",
                                "age",
                                "height",
                                "particularities"
                            ],
                            "col2" => [
                                "desc",
                                "photos"
                            ]
                        ],
                        "tab2" => [
                            "tab" => "Card",
                            "col1" => [
                                "card-label",
                                "card~number",
                                "card~origin",
                                "card~origin_zoo",
                                "card~origin_country"
                            ],
                            "col2" => []
                        ],
                        "tab3" => [
                            "tab" => "Shows",
                            "col1" => [
                                "shows"
                            ],
                            "col2" => [

                            ]
                        ]
                    ]
                ],

                "zone" => "file:sharp_zone",

                "show" => [
                    "label"   => "Show",
                    "plural"  => "Shows",
                    "embedded" => true,

                    // Model
                    "repository" => '\App\Sharp\Giraffe\Show\Repository',
                    "validator" => '\App\Sharp\Giraffe\Show\Validator',

                    // Fields
                    "form_fields" => [
                        "title" => [
                            "label" => "Show title",
                            "type" => "text"
                        ],
                        "desc" => [
                            "label" => "Description",
                            "type" => "textarea"
                        ],
                        "date" => [
                            "label" => "Date of the show",
                            "type" => "date",
                            "has_time" => true
                        ],
                    ], // End of form fields

                    "form_layout" => [
                        "tab1" => [
                            "tab" => "",
                            "col1" => [
                                "title",
                                "date"
                            ],
                            "col2" => [
                                "desc"
                            ]
                        ]
                    ]
                ]
            ]
        ]
    ]
];

Note you can split this file into multiple files of entities. The syntax is:

(...)
"entities" => [
    "giraffe" => "file:sharp_giraffe",
(...)

Simply create a "sharp_giraffe.php" file, with the giraffe entity config.

Hope this will help.

Philippe

Le 13 mars 2015 à 11:41, oimken [email protected] a écrit :

I try to follow your doc to set up a demo, but the doc if for laravel 4, there are lots of differences, I stuck on very first step: create the cms config file.....

I already tried to put the config file "sharp.cms.giraffe.php" into "/config", and edit the "config/sharp.php"

"name" => "Sharp Demo", // "auth_service" => '\Quincy\Services\SharpAuth', "cms" => ['giraffe']

and change the file name to test: but I keep receiving the error message:

EntityConfigurationNotFoundException in SharpCmsConfig.php line 59: Category configuration for [] can't be found

would you please help me out? update the doc will be very helpful, or share a little sample that I could figure out how sharp works.

thank you for your kind help.

— Reply to this email directly or view it on GitHub.

dvlpp avatar Mar 13 '15 10:03 dvlpp

WOO!!! Thanks for your quick reply, that is really fast!!! Thank you.

oimken avatar Mar 13 '15 10:03 oimken

and I got another problem:

ReflectionException in Container.php line 776: Class \App\Sharp\Giraffe\Repository does not exist

where should I put the Repository Class into.

Is that:

create a Repositories directory in app folder. for example "app/Sharp/Giraffe"

and create a php file name "Repository.php"?

oimken avatar Mar 13 '15 11:03 oimken

Yes, with an App\Sharp\Giraffe namespace.

Le 13 mars 2015 à 12:02, oimken [email protected] a écrit :

and I got another problem:

ReflectionException in Container.php line 776: Class \App\Sharp\Giraffe\Repository does not exist

where should I put the Repository Class into.

— Reply to this email directly or view it on GitHub.

dvlpp avatar Mar 13 '15 11:03 dvlpp

I could not get it works...

I create the Repository, and got this:

MandatoryClassNotFoundException in SharpEntitiesList.php line 80: Repository [App\Sharp\Giraffe\Repository] has to implements \Dvlpp\Sharp\Repositories\SharpHasSublist in order to manage sublists

so I add "use Dvlpp\Sharp\Repositories\SharpHasSublist" to Repository.php, and change to "class Repository implements SharpHasSublist {" , and I got this:

FatalErrorException in Repository.php line 16: Interface 'Dvlpp\Sharp\Repositories\SharpHasSublist' not found

maybe I am too weak in php, I am a graphic designer actually, I just could not get the demo run.....

but I really like your "Sharp" idea, it will easy my work.
I am already looking for a simple and handy cms for a very long time. Sharp seems so attractive ... clean and nice and could be highly custom

could you send me a running sharp demo to my emal "oimken(#at#)gmail.com"? maybe this request is too much, but as you see, I am a very junior php fan, without a running demo, I almost could not do anything further...

oimken avatar Mar 13 '15 18:03 oimken